Commit Graph

5734 Commits

Author SHA1 Message Date
Andrea Boriero 2f2d30e4e5 HHH-13861 Expose the doWork() and doReturningWork() APIs on StatelessSession as well 2020-02-13 09:33:00 +00:00
Sanne Grinovero 2ed15445c6 HHH-13859 Removing unused import 2020-02-11 15:11:07 +00:00
Sanne Grinovero d3fdb657d6 HHH-13859 Avoid attempting to index a module-info.class via Jandex 2020-02-11 15:11:07 +00:00
Andrea Boriero 5defe54d31 HHH-13856 Fix Oracle failing tests 2020-02-10 14:52:32 +00:00
gavinking bb10a8ce27 As suggested by @romainmoreau and @aklish, use 'cascade' in H2 1.4.200+
See https://github.com/hibernate/hibernate-orm/pull/3093

Also fix up some confusing/wrong handling of H2 version numbers and
delete some obsolete commented code.
2020-02-09 15:49:32 +01:00
Sanne Grinovero 90b69ffc7d HHH-13854 Allow extensions of StandardServiceRegistryBuilder to ignore Environment variables 2020-02-07 16:55:02 +00:00
Sanne Grinovero 11b1623774 HHH-13804 Update comments in Environment to suggest the ability to inject an externally defined ProxyFactoryFactory instance 2020-02-07 13:41:29 +00:00
Sanne Grinovero 8043e49384 HHH-13851 Remove a dead code field from PojoEntityTuplizer 2020-02-07 13:28:41 +00:00
Sanne Grinovero 0964b881f7 HHH-13851 Rework initialization of ProxyFactoryFactory, allow some code reuse from SPI 2020-02-07 13:28:32 +00:00
Sanne Grinovero 52ca2703f3 HHH-13850 Clear the BytecodeProvider caches both after SessionFactory creation and stop 2020-02-07 13:22:37 +00:00
Sanne Grinovero 5c81089d65 HHH-13849 Convert BytecodeProvider into a Service as well 2020-02-07 13:21:13 +00:00
Sanne Grinovero e19acd5a9c HHH-13849 Convert ProxyFactoryFactory into a Service, scope it to SessionFactory 2020-02-07 13:21:10 +00:00
Steve Ebersole 844adb4d45 rework collection loading state management - remove the "temp" load collections in various PersistentCollection impls 2020-02-05 13:23:47 -06:00
Steve Ebersole 8fd1f9a536 rework collection loading state management - remove the "temp" load collections in various PersistentCollection impls 2020-02-05 18:06:08 +01:00
gavinking cb3560de96 Allow binary literals to be specified in a Java byte-array-like format
Allow you to write x'DEADBEEF' as {0xDE, 0xAD, 0xBE, 0xEF}.

For now I'm being quite restrictive here:

- byte literals must be written in hexadecimal not in decimal
- they must be exactly two digits in length

(I would like to allow decimal format but I think that would start to
collide with other rules with braces in the grammar.)
2020-02-05 16:33:08 +01:00
gavinking ddaff28838 Add hexadecimal binary literals with standard SQL syntax
And fix up the parsing and formatting in VarbinaryTypeDescriptor which
was inconsistent with how the JDBC drivers handle the conversion to
signed bytes.
2020-02-05 16:33:08 +01:00
Frank Doherty 4b037cdf8f HHH-13792 evict entity cache after transaction has committed for read-write cache access strategy
- changed EntityReadWriteAccess to remove the no-op unlockRegion method (now uses the method inherited from
  AbstractCachedDomainDataAccess, which calls evictAll)

- changed AbstractReadWriteAccess to add a no-op removeAll method (as this is called by the constructor in
  BulkOperationCleanupAction.EntityCleanup, during the transaction)

- added new file ReadWriteCacheTest with some test scenarios:
  - testDeleteHQL/testDeleteNativeQuery/testUpdateHQL/testUpdateNativeQuery which confirm that the fix corrects the
    scenario where stale entities could be loaded into the cache and remain there (because the eviction was
    happening before the transaction had committed)
  - testDelete/testUpdate show that entity updates/deletions were not affected by this issue (only HQL/native queries)
2020-02-05 15:47:13 +01:00
Hyunjin Choi 07ffd63b3a Fix typos in AbstractEntityPersister's generateSQLDeletStrings() method
Fix typo.
2020-02-05 15:27:16 +01:00
Andrea Boriero eb43734658 Fix compilation errors after merge 2020-02-05 12:16:41 +00:00
Andrea Boriero f77fb75639 Merge remote-tracking branch 'upstream/master' into wip/6.0_merge_23 2020-02-05 11:37:36 +00:00
gavinking ae291bf04f Prevent overflow when persisting Durations
Durations should be converted to BigDecimals for storage in NUMERIC columns.

(I missed this change when I merged my work from the previous branch.)
2020-02-04 13:55:22 +01:00
gavinking 5401f4fcfd Fix rendering of boolean literals on Oracle, SQL Server and possibly others
These databases do not understand 'true' and 'false' but that's what we
generated for a boolean literal in the HQL.
2020-02-04 13:46:57 +01:00
gavinking 1706141ffc H2 supports 'true' and 'false' boolean literals 2020-02-04 13:44:48 +01:00
gavinking 398dcfffeb Fill in implementation of HQL hexadecimal literals
And add tests for hex and BigDecimal/BigInteger literals
2020-02-02 09:58:14 +01:00
gavinking 0b6e071f4a Remove obsolete token from list in parser 2020-02-02 09:41:06 +01:00
gavinking 558e757a33 Improve test for function parameter binding 2020-02-01 12:26:06 +01:00
Sanne Grinovero ddb810510c HHH-13838 Allow extension of PersistenceXmlParser 2020-01-31 18:32:24 +00:00
Christian Beikov c41c6aaf7d Some fixes for delete and update statements 2020-01-31 17:56:12 +01:00
gavinking fe4f98186a Remove InterbaseDialect, PointbaseDialect, and ProgressDialect
None of these dialects seem to be maintained, and the databases themselves
look to be moribund.
2020-01-31 10:32:41 -06:00
gavinking 47c001b00c Remove MckoiDialect
The last release of this database was in 8 years ago, and nobody is using it
according to StackOverflow.
2020-01-31 10:28:23 -06:00
gavinking b1de5d6703 Remove JDataStoreDialect
It is:

- not used (no JDataStore questions on StackOverflow)
- not maintained
- not of high quality
2020-01-31 17:21:32 +01:00
gavinking 57f7c7bcd3 Improve Javadoc in TypeNames 2020-01-31 11:55:45 +01:00
gavinking 294f16f73d hibernate.legacy_limit_handler no longer has any effect
Therefore:

- mark USE_LEGACY_LIMIT_HANDLERS deprecated
- delete the tests for this workaround (which were broken anyway)
2020-01-31 11:21:29 +01:00
gavinking 6a8d0bf801 Fix grammar 2020-01-31 11:19:37 +01:00
gavinking 2175aea8ad File headers and newlines 2020-01-31 10:58:42 +01:00
Nathan Xu 19e35b86cc HHH-13809 Various improvements in the user guidesw 2020-01-31 09:30:28 +00:00
Sanne Grinovero cc7c7d7ee3 HHH-13837 Initialize the Hibernate VERSION as a real constant 2020-01-30 22:05:36 +00:00
Sanne Grinovero 5f302c57a7 HHH-13831 Avoid log level check within complex loops 2020-01-30 22:05:36 +00:00
gavinking 41577dcec4 Map Durations to NUMERIC instead of BIGINT 2020-01-30 14:01:34 -06:00
gavinking 9a061c5c10 Render HQL Boolean literals correctly on dialects which use BIT for boolean 2020-01-30 14:01:34 -06:00
gavinking 0d3b130258 Remove support for octal literals
For the datetime stuff we need integer literals with leading zeros, and
surely there is not a single breathing person who has ever written an
octal literal in HQL.
2020-01-30 14:01:34 -06:00
gavinking 42de2976e1 don't swallow connection errors
This bug made it *really* hard to figure out what was going on with
rejected connections!
2020-01-30 14:01:34 -06:00
gavinking b085730dd8 Use autoboxing in BooleanTypeDescriptor 2020-01-30 14:01:34 -06:00
gavinking 1989635bc2 Clean up use of generic types in EnumValueConverters
Use the "self type" idiom correctly.
2020-01-30 14:01:34 -06:00
gavinking d5096fc660 TinyInt should not use Short here 2020-01-30 14:01:34 -06:00
gavinking 41cb827267 Delete two obsolete ICS classes 2020-01-30 14:01:34 -06:00
gavinking e4379bea4b Improve javadoc 2020-01-30 14:01:34 -06:00
gavinking a63d23f724 Use switch for consistency 2020-01-30 14:01:34 -06:00
gavinking eb71ec395d Oracle doesn't recognize "as", so use the Dialect to decide 2020-01-30 14:01:34 -06:00
gavinking 5cae462f7a Let ClobTypeDescriptor handle Strings
Just like BlobTypeDescriptor can handle byte[] arrays
2020-01-30 14:01:34 -06:00
gavinking 3ab747517d Use OID instead of BYTEA for @Lob mappings on PostgreSQL 2020-01-30 14:01:34 -06:00
gavinking c8f477c962 A couple of default properties went missing from the dialects 2020-01-30 14:01:34 -06:00
gavinking 4f5b37c9c4 Use SequenceSupport everywhere instead of deprecated methods of Dialect 2020-01-30 14:01:34 -06:00
gavinking f6eaaca824 Fix up Dialect auto-detection
- make it work for DriverManagerConnectionProviderImpl
- improve logging and some confusing exceptions
- make it respect explicit database setting properties
2020-01-30 14:01:34 -06:00
gavinking 95930820af Support for timezones
- add TimestampWithTimeZoneDescriptor and use it in OffsetDateTimeJD
  and ZonedDateTimeJD
- add ZoneOffsetJavaDescriptor for ZoneOffset attributes
- clean up string rendering for temporal types using ISO formats;
  note that they do not need to implement objectToSQLString()
  since they cannot be discriminators

Note that at this time very few databases have meaningful support
for the ANSI-standard TIMESTAMP WITH TIME ZONE type. This limits
the usefulness of TimestampWithTimeZoneDescriptor for now.

Also add in some missing but needed type mappings for temporal types
2020-01-30 14:01:34 -06:00
gavinking 5a3838dfa6 Simplify the whole SqmFunctionDescriptor hierarchy
And make the various function implementations work in more common ways.

- remove some unnecessary flexibility
- simplify some function descriptors to do their work during render()
- fix generics of QueryLiteral
- fix DerbyConcatEmulation
2020-01-30 14:01:34 -06:00
gavinking effec02964 Automatically generate check constraints for boolean and enum attributes
And make enums map to TINYINT by default.
2020-01-30 14:01:34 -06:00
gavinking 992b390fce Get type-specific column length/precision/scale defaulting working again
And fix resulting breakage to envers
2020-01-30 14:01:34 -06:00
gavinking f0d93200b5 Add hibernate.dialect.show_hql_functions
Very useful feature for logging available functions
2020-01-30 14:01:34 -06:00
gavinking 96c948b06b Changes to tests
First, disable tests that fail because of loss of indirected parameter binding.
On the other branch, the index of a HQL parameter wasn't passed directly through
as the index of the JDBC parameter. On this branch it seems to be. This causes a
problem for fancy HQL functions like overlay() and pad() which sometimes
duplicate/reorder HQL arguments in the generated SQL.

Also reenable tests that now pass.

Also fixed a rather badly-written test that failed for me.

- called Thread.sleep(), wasting a whole second
- failed on non-slow machines
2020-01-30 14:01:34 -06:00
gavinking 5b18a4048d Make parenthesized expressions work in HQL
Previously, parenthesized expression were broken.
2020-01-30 14:01:34 -06:00
gavinking 95a291575e Hacky solution to make count(e) work again
(It wasn't working on the new 6 branch)
2020-01-30 14:01:34 -06:00
gavinking 28232427ce Got unary +, - working again
(They were unimplemented on the new 6 branch)
2020-01-30 14:01:34 -06:00
gavinking 9565d499af Big merge of my branch with new Hibernate 6 codebase
Lots of new functionality here related to HQL functions, SQL
dialects, and date/time handling.
2020-01-30 14:01:33 -06:00
Davide D'Alto 4cd9dd30a0 HHH-13831 Rename test class to EventListenerDuplicationStrategyTest 2020-01-30 18:09:23 +01:00
Davide D'Alto 0268ba9a33 HHH-13831 Test listeners error replacement strategy 2020-01-30 18:09:23 +01:00
Davide D'Alto e38d2be431 HHH-13831 Test listener keep original replacement strategy 2020-01-30 18:09:23 +01:00
Davide D'Alto 6670d03493 HHH-13831 Add tests for multiple listeners
We want to test what happens when we apply a replacement strategy
  that doesn't match all listeners.
2020-01-30 18:09:23 +01:00
Davide D'Alto 695e3a084e HHH-13831 Clean up existing tests for listeners 2020-01-30 18:09:23 +01:00
Davide D'Alto 7bf632e5c5 HHH-13831 Fix the way we keep track of the callers in test 2020-01-30 18:09:23 +01:00
Davide D'Alto c0a2b4f424 HHH-13831 Add missing placeholder to log message 2020-01-30 18:09:23 +01:00
Steve Ebersole 0a2dd4e126 HHH-13831 Refresh listeners when one is replaced 2020-01-30 18:09:23 +01:00
Steve Ebersole 2f86c4983f HHH-13831 Refresh listeners when one is replaced 2020-01-30 18:09:23 +01:00
Davide D'Alto 739ca869af HHH-13831 Test for replacing listeners 2020-01-30 18:09:23 +01:00
Davide D'Alto 5c1cc35f98 HHH-13831 Refresh listeners when one is replaced 2020-01-30 18:09:23 +01:00
Christian Beikov 89ebcfbc32 Allow to invoke list() operation also without unique filtering 2020-01-30 17:24:49 +01:00
Christian Beikov 7b064afbd3 Use type inference for every added when/otherwise arm for case expressions 2020-01-30 17:23:54 +01:00
Sanne Grinovero f7aba3ea17 HHH-13833 Replace references to Opcodes.ASM7 with OpenedClassReader.ASM_API 2020-01-30 09:02:43 +00:00
Nathan Xu 3eb49972f3 HHH-8776 add more 'final' keywords to align with existing coding style 2020-01-29 20:52:33 +01:00
Nathan Xu d02ce91e9c HHH-8776 add testing cases to prove 'fetch graph' takes precedence over 'fetch profile' 2020-01-29 20:52:33 +01:00
Nathan Xu 29f905dafc HHH-8776 fix check style issue 2020-01-29 20:52:33 +01:00
Nathan Xu f3cfff5cee HHH-8776 fix 'fetch graph' semantic 2020-01-29 20:52:33 +01:00
Christian Beikov 1cd5ea61f6 Fix type inference for case expressions and simple case SQL rendering issue 2020-01-29 19:05:16 +01:00
Christian Beikov f66728d5b2 Fix plural join alias de-reference 2020-01-29 17:51:13 +01:00
Christian Beikov 31377b1423 Register JPA embeddable types properly, allow access to functions in registry and fix AttributeClassifications 2020-01-29 17:51:13 +01:00
Gwenneg Lepage a4ba766620 HHH-13833 Replace OpCodes.ASM5 with OpCodes.ASM7 in the Byte Buddy enhancer 2020-01-29 15:48:53 +00:00
Sanne Grinovero 252ca9e98b HHH-13832 Optimise setting of default Flush Mode on a newly created Session 2020-01-29 15:42:23 +00:00
Jonathan Bregler b178f9e23a HHH-13783: fix test failure in HiLoSequenceMismatchStrategyTest 2020-01-28 21:36:32 +01:00
Andrea Boriero b51d34a22d HHH-13796 Fix test failure on Oracle 2020-01-28 15:18:06 +00:00
Nathan Xu 9d2ac546f3 HHH-13677 make org.hibernate.flushMode config take effect 2020-01-28 08:14:39 +00:00
Nathan Xu a6934467f7 HHH-6686 fix JQL exception in face of 'empty' 2020-01-27 14:55:39 +00:00
Andrea Boriero f1d1e62478 HHH-10844 Fix test formatting 2020-01-27 13:42:34 +00:00
Jan-Willem Gmelig Meyling 85bfcc6e21 HHH-13796 - Missing from clause in query from BinaryLogicOperatorNode row value constructor translation
https://hibernate.atlassian.net/browse/HHH-13796
2020-01-27 13:40:44 +00:00
Andrea Boriero c5581e6759 HHH-13783 Fix test failing on Oracle 2020-01-27 12:10:15 +00:00
Nathan Xu 0c8e3056dc HHH-13783 avoid SequenceMismatchStrategy checking for non-pooled optimizer 2020-01-24 12:15:43 +00:00
Andrea Boriero 5844bbd85b HHH-12856 Reintroduce supportsLimitOffset for legacy OS400 2020-01-24 11:32:44 +00:00
Pierrick Rouxel 7b1d1a1f3a HHH-12856 Add AS400V7R3Dialect as default for V7R3 of IBM i 2020-01-24 11:29:01 +00:00
Pierrick Rouxel 1038a0c968 HHH-12856 Reintroduce limitation for legacy OS400 2020-01-24 11:29:01 +00:00
Pierrick Rouxel b204c95e0c HHH-12856 Fix sequences with liblist support 2020-01-24 11:29:01 +00:00
Pierrick Rouxel 4aea43bdb0 HHH-12856 Cleanup DB2400Dialect 2020-01-24 11:29:01 +00:00