Commit Graph

9062 Commits

Author SHA1 Message Date
Andrea Boriero 5a89c34127 HHH-15744 Add test for issue 2022-12-05 17:05:58 +01:00
Andrea Boriero 0d20cea0b3 HHH-15713 UnknownTableReferenceException on @ElementCollection of @Embeddable containing a @MayToOne with a @ManyToMany 2022-12-05 14:06:07 +01:00
Markus Heiden 1b417126bf HHH-15713 Add test case to reproduce bug 2022-12-05 14:06:07 +01:00
Andrea Boriero 404f1e15f4 HHH-15731 Add test for issue 2022-12-05 12:17:11 +01:00
Andrea Boriero 31fafb1d4f HHH-15721 NullPointerException in BaseSqmToSqlAstConverter.visitJunctionPredicate with combination of treats 2022-12-05 11:55:35 +01:00
Andrea Boriero 4de7bf20b2 HHH-15721 Add test for issue 2022-12-05 11:55:35 +01:00
Andrea Boriero 90a395a366 Clean up CircularBiDirectionalFetchImpl, CircularFetchImpl and ModelPartContainer 2022-12-05 11:54:51 +01:00
Sanne Grinovero d383042229 HHH-15811 Avoid secondary super-type cache pollution when casting to AttributeMapping 2022-12-04 23:07:20 +00:00
Sanne Grinovero a7c3455274 HHH-15810 Avoid secondary super-type cache pollution when casting to EntityInitializer 2022-12-04 21:41:16 +00:00
Sanne Grinovero 8ebf3c8507 HHH-15809 Secondary super-type cache pollution mitigations for HibernateBasicProxy 2022-12-04 20:21:55 +00:00
Sanne Grinovero ded4c433ac HHH-15808 ByteBuddyProxyFactory#getHibernateProxy is triggering type pollution via generic PrivilegedAction 2022-12-04 17:21:14 +00:00
Gavin bdc67f81b1 clarify some javadoc for @Immutable and optimistic locking stuff 2022-12-04 13:04:56 +01:00
franz1981 3c535c544f HHH-15804 Avoid JDK functional interfaces in ManagedTypeHelper 2022-12-04 11:45:03 +00:00
Sanne Grinovero c114d08ac2 HHH-15803 Have the default EmptyInterceptor avoid triggering type pollution 2022-12-03 23:28:12 +00:00
Mark Rotteveel 721b66c6d3 HHH-15801 IdentifierGeneratorHelper should compare column names case insensitively 2022-12-03 13:52:01 +01:00
Gavin f91905c34a unquote table/column names when inferring sequence name on postgres 2022-12-03 11:09:16 +01:00
Gavin 12682c0abd slightly sanitize API of mapping package 2022-12-03 11:04:21 +01:00
Gavin 0359e01c77 very minor cleanup to ColumnReference 2022-12-03 09:51:02 +01:00
Gavin 5ad9677728 remove redundant call 2022-12-03 09:51:02 +01:00
Gavin 85bfed78c3 fix a potential source of NPEs
(though this code path isn't working anyway for other reasons)
2022-12-03 09:51:02 +01:00
Gavin 6596389e55 make @IdGeneratorType accept Generator 2022-12-02 18:44:51 +01:00
Gavin eb6860d9d2 make @IdGeneratorType accept Generator 2022-12-02 17:58:40 +01:00
Gavin 9389295281 improve javadoc for Generator hierarchy
and make SelectGenerator a subclass of IdentityGenerator
2022-12-02 17:58:40 +01:00
Gavin 392b2f2364 update javadoc for InsertGeneratedIdentifierDelegate 2022-12-02 16:09:23 +01:00
Gavin 337919b766 kill off some awful code in IdentifierGeneratorHelper
- should make multi-column (post insert) id generators work by side effect
- also make StandardGenerator a mixin type interface
2022-12-02 16:09:23 +01:00
Gavin 4195772c15 generalize the InsertReturningDelegates to handle arbitrary InDatabaseGenerators
the bit limitation is that an InDatabaseGenerator can be multi-column, but all the
InsertReturningDelegates assume that they map exactly one IDENTITY column
2022-12-02 16:09:23 +01:00
Gavin 7b0ca427dd remove nexus between Generators and InsertGeneratedIdentifierDelegates
this is certain a very debatable move, but I think it's necessary to
keep the layering intact - we don't want this very technical construct
hanging off the side of the Generator APIs, which are user-visible
2022-12-02 16:09:23 +01:00
Gavin 6a630e3515 make PostInsertIdentifierGenerator extend InDatabaseGenerator 2022-12-02 16:09:23 +01:00
Sanne Grinovero 4b2f8ff8ae HHH-15793 Mitigate type pollution on ColumnReference#getExpressionType 2022-12-02 14:25:27 +00:00
Sanne Grinovero ed26c3f8fa HHH-15787 DefaultMergeEventlistener#onMerge is performing runtime services lookup 2022-12-02 11:21:18 +00:00
Sanne Grinovero 329ccaa7a1 HHH-15791 Avoid excessive Session casts to EventSource 2022-12-02 09:40:53 +00:00
Steve Ebersole 6035ab8e66 HHH-15393 - Improve write-paths to use mapping model 2022-12-01 21:40:04 -06:00
Steve Ebersole ee1788c3c3 HHH-15393 - Improve write-paths to use mapping model 2022-12-01 20:01:40 -06:00
Sanne Grinovero 33ce6a3d79 HHH-15790 Refactor casting strategies for HibernateProxy across the codebase 2022-12-01 21:31:55 +00:00
Sanne Grinovero afc35f6c62 HHH-15790 Refactor filter definition in ByteBuddyProxyHelper 2022-12-01 21:31:55 +00:00
Sanne Grinovero fbf469830c HHH-15790 Make HibernateProxy also type-cache friendly 2022-12-01 21:31:55 +00:00
Sanne Grinovero 366a1e9c1d HHH-15790 Apply the new type-cache enhancements to CompositeTracker and CompositeOwner 2022-12-01 21:31:55 +00:00
Sanne Grinovero 3028299b4a HHH-15790 New dispatch approach to manage type checks of enhanced entities 2022-12-01 21:31:55 +00:00
Gavin c595347803 unify timestamp generation in one generator instead of three
shows a nice feature of the constructor-based init
2022-12-01 15:36:05 +01:00
Marco Belladelli be9358e02f HHH-15785 Fix javadoc errors 2022-12-01 14:51:28 +01:00
Andrea Boriero 56eb241dec Fix Oracle OptionalSecondaryTableBatchTest#testManaged failing test 2022-12-01 14:49:22 +01:00
Gavin 4aadbe801c deprecate unused class org.hibernate.mapping.IdGenerator 2022-12-01 13:40:40 +01:00
Gavin 99cbd9a24a minor fix to test 2022-12-01 13:40:40 +01:00
Gavin a8aab7f5f2 HHH-15789 change IdentifierGeneratorFactory to be able to produce plain InMemoryGenerators
this change is sort-of breaky, so I'm not sure about it

cleanups to StandardIdentifierGeneratorFactory

squash
2022-12-01 13:40:40 +01:00
Gavin cced19c7ee HHH-15789 better validation of generators 2022-12-01 13:40:40 +01:00
Gavin 101bee7647 minor cleanups + add a couple of @Deprecated annotations 2022-12-01 13:40:40 +01:00
Andrea Boriero 3396c18178 HHH-15393 Fix compilation error 2022-12-01 10:15:08 +01:00
Steve Ebersole 631d0bad71 HHH-15393 - Improve write-paths to use mapping model 2022-11-30 23:50:39 -06:00
Gavin 26e7393775 HHH-15789 allow any InMemoryGenerator to generate ids 2022-12-01 00:02:18 +01:00
Gavin 7f72696fff HHH-15788 deprecate GenerationTime since it is a dupe of GenerationTiming
...and it was not even being consistently used in its own package!

(@CurrentTimestamp was already using GenerationTiming.)

What a mess.
2022-12-01 00:02:18 +01:00
Gavin 2b50997e71 rename to AnnotationBasedGenerator 2022-12-01 00:02:18 +01:00
Gavin a67cfd039e HHH-15789 unify IdentifierGenerator with value generator stuff 2022-12-01 00:02:18 +01:00
Gavin 1bd082bd3e much better naming 2022-12-01 00:02:18 +01:00
Gavin 82c68d93e9 HHH-15789 make IdentifierGenerator into a sort of value generator 2022-12-01 00:02:18 +01:00
Steve Ebersole 1c083a5863 HHH-15393 - Improve write-paths to use mapping model 2022-11-30 15:36:28 -06:00
Steve Ebersole c04caa18de HHH-15393 - Improve write-paths to use mapping model 2022-11-30 12:59:31 -06:00
Steve Ebersole 175fe0e44d HHH-15393 - Improve write-paths to use mapping model 2022-11-30 09:01:37 -06:00
Marco Belladelli 3b14107c49 HHH-14982 CriteriaBuilder extension mechanism and Spatial implementation 2022-11-30 10:42:03 +01:00
Gavin f022d6ef3b HHH-15782 make @ValueGenerationType work with the new "split" hierarchy of value generators
this was a lot easier than I thought it would be
2022-11-30 02:05:38 +01:00
Gavin 82db252422 HHH-15781 deprecate @GenericGenerator(strategy) in favor of @GenericGenerator(type) 2022-11-30 02:05:38 +01:00
Gavin f03a43053d javadoc for @IdGeneratorType and @ValueGenerationType 2022-11-30 02:05:38 +01:00
Gavin 8ce2241153 HHH-15781 make @GenericGenerator typesafe by adding type() member
this annotation is not deprecated, so we should at least make it typesafe
2022-11-30 02:05:38 +01:00
Gavin 3bab26739d javadoc for @GeneratorType and @GenericGenerator 2022-11-30 02:05:38 +01:00
Steve Ebersole 815c4eb4a1 HHH-15393 - Improve write-paths to use mapping model 2022-11-29 16:01:16 -06:00
Gavin 3e6fcdeda3 unify new ValueGenerationStrategy interfaces with existing ValueGeneration stuff
- introduce ValueGenerationStrategy to abstract over IMVGS and IDVGS
- make ValueGeneration a mixin of IMVGS with IDVGS
- make IDVGS accept a Dialect for SQL fragment generation
  (it was based on an obsolete version of ValueGeneration)
- adapt all the code which only handled single-column value generation
  to handle multiple columns, as introduced by IDVGS

Still to do: the whole AnnotationValueGeneration stuff still requires the use
of the mixin interface, and you can't use IMVGS or IDVGS directly. That bit is
going to require a bit more thinking about backward compatibility.
2022-11-29 21:03:58 +01:00
Steve Ebersole 94e2b599e4 HHH-15393 - Improve write-paths to use mapping model 2022-11-29 12:40:54 -06:00
Mark Rotteveel 7461100c39 HHH-15775 Make UnknownServiceException and NullServiceException extend ServiceException 2022-11-29 18:39:36 +01:00
Gavin 325b416e7d fix checkstyle failure 2022-11-29 18:01:07 +01:00
Steve Ebersole 9ccb71847b HHH-15393 - Improve write-paths to use mapping model 2022-11-29 09:37:13 -06:00
Sanne Grinovero c7bd022b07 HHH-15779 Avoid stateful lambdas in hot processing of JdbcValuesResultSetImpl 2022-11-29 14:45:54 +00:00
Gavin a91e46a682 fix a flaky Sybase test 2022-11-29 15:11:25 +01:00
Christian Beikov 2b8b33e694 Fix Oracle rowid and sybase value generation issues 2022-11-29 12:13:27 +01:00
Christian Beikov ad019fccec Remove spacing in insert and update statements 2022-11-29 09:38:22 +01:00
Christian Beikov 8d3adc3123 Remove spacing in insert and update statements 2022-11-29 09:20:08 +01:00
Christian Beikov 26aaf1bf88 Fix more test failures with write path model 2022-11-29 08:39:59 +01:00
Christian Beikov a81f9d3e2d Fix HQLTest issue and javadoc aggregation 2022-11-29 01:43:32 +01:00
Steve Ebersole 1f9a6f43f1 HHH-15393 - Improve write-paths to use mapping model 2022-11-28 16:55:06 -06:00
Gavin cc9ecfb94d annotate ValueGeneration impls in annotation package @Internal 2022-11-28 22:52:52 +01:00
Gavin 366a89ae71 reimplement @Source in an elegant way using the ValueGeneration machinery
... and finally delete two of my least-favorite classes!
2022-11-28 22:49:57 +01:00
Gavin e908d4c8f6 @CreationTimestamp should not be declared @Inherited 2022-11-28 22:49:57 +01:00
Gavin 457872dbdd skip a test on TiDB
as requested by @beikov
2022-11-28 22:49:57 +01:00
Gavin 84be9faf70 remove weird getCurrentTimestampSelectString() on PostgresPlusDialect
... which was causing tests to fail... but why *now* I have no clue!
2022-11-28 22:49:57 +01:00
Gavin 993aae6095 HHH-15774 @CurrentTimestamp takes over from @Source
... and make value generation work better with version properties.
2022-11-28 22:49:57 +01:00
Steve Ebersole a9ac98b364 HHH-15393 - Improve write-paths to use mapping model
HHH-15723 - Fix foreign-key modeling
2022-11-28 14:25:40 -06:00
Sanne Grinovero e4c294f4b6 HHH-15776 Avoid type checking for ManagedEntity in EntityEntryContext#deserialize as well 2022-11-28 17:40:46 +00:00
Sanne Grinovero c882699557 HHH-15776 Avoid type checking for ManagedEntity in StatefulPersistenceContext#addReferenceEntry 2022-11-28 17:40:46 +00:00
Gavin 0d295e9f11 HHH-15772 deprecate @Proxy and @Polymorphism 2022-11-28 13:45:57 +01:00
Gavin 77fe23d7f9 javadoc for @Polymorphism 2022-11-28 13:45:57 +01:00
Gavin 922e71d626 deprecate @Target which dupes functionality of JPA annotations
...and refresh some misc annotation javadoc
2022-11-28 13:45:57 +01:00
Davide D'Alto dd36425b31 HHH-15746 Register the StandardIdentifierGeneratorFactory as a default Service 2022-11-28 10:07:22 +00:00
Sanne Grinovero 7081d31647 HHH-15746 Beans Helper doesn't need to be a singleton, convert to static helpers 2022-11-28 10:07:22 +00:00
Gavin ed52dba650 make the gradle build quieter
also delete some obsolete stuff from before move to Java 11
2022-11-28 09:10:34 +01:00
Gavin 86b28f4c8d expand javadoc for OptimisticLocking 2022-11-27 20:01:33 +01:00
Gavin f2c81b0eaf rename some methods to reduce confusion 2022-11-27 14:16:43 +01:00
Gavin 759b68b022 HHH-15770 let you use @ColumnDefault on associations
this is very useful in combination with @OnDelete(action=SET_NULL)
2022-11-27 14:16:43 +01:00
Gavin 76f92bd901 HHH-15770 add in all the commonly-supported OnDeleteActions 2022-11-27 14:16:43 +01:00
Gavin c9caf292e6 HHH-15770 javadoc and cleanup for @OnDelete, OnDeleteAction 2022-11-27 14:16:43 +01:00
Gavin 12aa8bd431 add some comments for the next poor soul who wrestles with unique constraints 2022-11-27 12:38:45 +01:00
Gavin 5172d8798f HHH-15762 work around weird semantics of null in unique index on DB2/T-SQL 2022-11-27 02:14:38 +01:00
Gavin 0253e1fe7a HHH-15767 put unique constraints where they belong on optional @OneToOne associations
this was a bug that allowed people to use @OneToOne as a regular @ManyToOne
and ... people did ... as evidenced by all these bogus tests I just fixed

this is in principle a breaking change because it breaks code that was broken
2022-11-27 02:14:38 +01:00