Christian Beikov
dfa3981a52
Make stored procedure and function calls through ProcedureCall API more portable
2022-12-14 11:21:06 +01:00
Gavin
72edfa77e4
minor fix to DDL formatter
2022-12-13 22:58:41 +01:00
Gavin
6348d9927e
introduce TableMigrator and kill some code duplication
2022-12-13 22:56:44 +01:00
Marco Belladelli
f2576d6b87
HHH-15745 Change string literal handling in HQL lexer
2022-12-13 18:20:14 +01:00
Marco Belladelli
1109dfbb1c
HHH-15745 Add test for issue
2022-12-13 18:20:14 +01:00
Sanne Grinovero
c105c34976
Minor code refactoring
2022-12-13 15:28:05 +00:00
Christian Beikov
371d2f1d49
Move getCheckCondition to BasicType and add variant to JdbcType for Oracle Booleans and other future uses
2022-12-12 20:13:52 +01:00
Gavin
919278aac2
HHH-15845 sort enum values on MySQL
2022-12-12 19:39:24 +01:00
Sanne Grinovero
a5525a943f
HHH-15853 Remove the AttributeMetadataAccess interface
2022-12-12 15:00:42 +00:00
Sanne Grinovero
d2d40c7318
HHH-15853 Avoid re-computing AttributeMetadataAccess at runtime
2022-12-12 15:00:42 +00:00
Sanne Grinovero
58f8d3d449
HHH-15844 Introduce custom containers for AttributeMapping Lists and Maps
2022-12-12 10:55:08 +00:00
Gavin
33faa5b060
HHH-15847 run AttributeBinders in a SecondPass
...
so that they can do stuff like register converters and not
have the results hammered by the SecondPass registered by
BasicValueBinder.
2022-12-11 17:40:15 +01:00
Gavin
2b7eb6fc1c
HHH-15847 introduce ConverterRegistry
2022-12-11 17:40:15 +01:00
Gavin
4d2f4988c8
HHH-15847 fix check constraint creation
...
- fix check constraints for built-in Boolean converters
- move getCheckCondition() + getSpecializedTypeDeclaration() from JavaType to BasicValueConverter
- simplify the API of Dialect related to check constraints
- recover check constraint for boolean on Oracle by letting Dialects register converters
- attempt to clean up some generics stuff in enum-related code
2022-12-11 17:40:15 +01:00
Gavin
a25e53d1ab
also use enum type for boolean->char mappings on MySQL
2022-12-10 12:45:59 +01:00
Gavin
413b9ba03e
correct impl of MySQL.supportsColumnCheck()
2022-12-10 12:45:59 +01:00
Gavin
baffbc0aae
reenable check constraings on enum columns, and use MySQL enum column types
...
MySQL doesn't have real check constraints, but it does have something just as good for this special case
2022-12-10 01:48:35 +01:00
Gavin
7208bcea41
clean up some bodgy handling of "null" annotation values (empty strings)
2022-12-09 18:24:01 +01:00
Christian Beikov
a9be2e1584
Fix temporal round in tests and render calendar with milliseconds precision
2022-12-08 16:15:40 +01:00
Gavin
7376a1cdfb
improve some javadoc around settings
2022-12-08 11:48:41 +01:00
Gavin
2c8d6d719b
improve some assertions in time zone tests + rename
2022-12-08 02:02:17 +01:00
Gavin
3196f2584b
add yet another time zone test
2022-12-08 02:02:17 +01:00
Gavin
d08498109b
jdoc for schema management Action + for JDBC_TIME_ZONE
2022-12-07 23:57:02 +01:00
Karel Maesen
c8723d3f14
HHH-15814 add methods for current time selection to CockroachDB Dialect
2022-12-07 22:35:53 +01:00
Gavin
7dff19795f
attempt to fix continuing test flakiness on Sybase
2022-12-07 22:35:32 +01:00
Gavin
86ef33d55b
clarify semantics of NORMALIZE
2022-12-07 19:24:57 +01:00
Gavin
5e9b57cf40
add one more test, this time for TIMEZONE_DEFAULT_STORAGE=NORMALIZE
2022-12-07 19:24:57 +01:00
Gavin
9660a0424f
clarify AnnotationBasedGenerator vs constructor for Generators
...
this was unclear/misleading in the javadoc, as pointed out by @sebersole
2022-12-07 16:13:19 +01:00
Gavin
7bb066330a
improve a couple of javadoc links
2022-12-07 15:18:58 +01:00
Gavin
512ad8c80d
fix @Column(precision=p) with TimeZoneStorageType.COLUMN
2022-12-07 14:48:36 +01:00
Sanne Grinovero
cceac72a22
HHH-15836 Cleanup unneccessary String <> Serializable casts in TimestampsCacheEnabledImpl
2022-12-07 13:42:04 +00:00
Andrea Boriero
23cff8bd10
HHH-15674 @NamedEntityGraph not working on entity that have composite PK
2022-12-07 14:03:13 +01:00
Andrea Boriero
ff28d677ab
HHH-15674 Add test for issue
2022-12-07 14:03:13 +01:00
Gavin
a7a455c39a
HHH-15834 add @TypeRegistration annotation
2022-12-07 13:36:15 +01:00
Jeremy Whiting
60468dadf0
HHH-15825 Avoid pointless autoboxing of timestamp.
2022-12-07 12:34:45 +00:00
Sanne Grinovero
52b143c613
HHH-15835 Avoid using functions in PersistenceContext#clear implementation
2022-12-07 12:28:56 +00:00
Gavin
6b1cbc0640
document the default behavior of time zone storage
2022-12-07 10:57:41 +01:00
Andrea Boriero
cc570da296
HHH-15653 Named Native Query cannot be registered/used with named parameters
2022-12-07 08:46:33 +01:00
Andrea Boriero
0d2e39314f
HHH-15653 Add test for issue
2022-12-07 08:46:33 +01:00
Gavin
015010febb
let's see if this works
2022-12-07 00:00:05 +01:00
Gavin
ef4ed9936e
move timezone tests where they belong
2022-12-07 00:00:05 +01:00
Gavin
ee66a93302
HHH-15828 fix setting TIMEZONE_DEFAULT_STORAGE to COLUMN
2022-12-07 00:00:05 +01:00
Gavin
e53b55583b
misc javadoc and refactorings around TimeZoneStorage stuff
2022-12-07 00:00:05 +01:00
Gavin
863dda5cf5
HHH-15820 make the default TimeZoneStorageStrategy for [Zoned|Offset]DateTime depend on the dialect
...
Define TimeZoneStorageType.DEFAULT, uses NATIVE if possible, falls back to NORMALIZE_UTC
so that for dialects with proper support for TIMESTAMP WITH TIME ZONE we use it
this is consistent with what we already do for Instant
2022-12-07 00:00:05 +01:00
Gavin
a4f301814b
HHH-15819 fix extract(offset hour from datetime)
...
bug noticed by @mrotteveel
improve the tests for extracting time zones
2022-12-07 00:00:05 +01:00
Marco Belladelli
e088738687
HHH-15742 Always return inferred mapping for is-null clauses
2022-12-06 11:39:15 +01:00
Marco Belladelli
cdfbc58bb9
HHH-15742 Add test for issue
2022-12-06 11:39:15 +01:00
Mark Rotteveel
d91e878c66
HHH-15812 Remove dialect checks due to fix in #5699
2022-12-06 11:38:51 +01:00
Mark Rotteveel
9290f8b754
HHH-15812 Firebird dialect improvements
2022-12-06 11:38:51 +01:00
Andrea Boriero
0745a2e294
HHH-15749 Hibernate fails when selecting grouped by entities in a specific order
2022-12-06 11:08:37 +01:00
Andrea Boriero
a2aca9127c
HHH-15749 Add test for issue
2022-12-06 11:08:37 +01:00
Gavin
cb35e0e734
HHH-15797 better error messages
...
1. include the SQL in some SQLGrammarExceptions where it was missing
2. append the SQL to the error message in JDBCException
3. don't wrap HibernateException in PersistenceException b/c it is one already
2022-12-05 22:40:13 +01:00
Gavin
239dfa30fa
HHH-15782 use a Generator for seeding/incrementing versions
...
add javadoc for version generation
2022-12-05 22:21:52 +01:00
Gavin
0228c3d185
HHH-15800 introduce EventType + EventTypeSets in place of the previous "two booleans" approach
...
I hope @sebersole likes this better.
re-deprecate GenerationTime since the way forward is EventType
2022-12-05 22:21:52 +01:00
Gavin
c09664711d
HHH-15800 clean up GenerationTiming
2022-12-05 22:21:52 +01:00
Gavin
b40d15e528
HHH-15782 cleaner impl of <timestamp source="db"/>
2022-12-05 22:21:52 +01:00
Gavin
075b268280
HHH-15800 create .generator and .binder packages and move new interfaces to them
2022-12-05 22:21:52 +01:00
Gavin
95aa852e15
HHH-15800 reverse previous work to standardizing on GenerationTiming
...
...and go in exact opposite direction to migrate to GenerationTime
2022-12-05 22:21:52 +01:00
Gavin
216fe0f615
HHH-15800 make Generator free of GenerationTiming
2022-12-05 22:21:52 +01:00
Gavin
1104d01d33
fix checkstyle failure
2022-12-05 21:58:09 +01:00
Steve Ebersole
f4a7be6b92
HHH-15795 - Create ValuedModelPart interface
2022-12-05 12:18:48 -06:00
Gavin
a4debae33a
HHH-15816 make @Immutable work at property level
2022-12-05 18:11:23 +01:00
Gavin
9526eb89b7
HHH-15813 add @Imported annotation
2022-12-05 17:51:45 +01:00
Andrea Boriero
c29f2eaf60
HHH-15744 HQL where clause parsing fails with StackOverflow exception
2022-12-05 17:05:58 +01:00
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