Commit Graph
814 Commits
Author SHA1 Message Date
Rob Bygrave e87a06a713 #2894 - Lack of setNullParameter() functionality on io.ebean.DtoQuery interface 2022-11-21 17:00:55 +13:00
Rob Bygrave dd7605ac3a #2888 - DatabaseFactory.create() fails with java.lang.InstantiationError: io.ebean.bean.EntityBeanIntercept in multi-module gradle setup 2022-11-15 14:50:34 +13:00
Rob BygraveandGitHub 013123c1a7 Merge pull request #2864 from FOCONIS/feature/override-service-objects
NEW: Override service objects with DatabaseConfig.putServiceObject
2022-11-10 13:05:22 +13:00
Rob Bygrave 6e9a8704b4 #2887 - Fix for Setting isolation level disables query cache
Use getInternalConnection() in order to set the queryOnly = false flag
which is done via connection()
2022-11-10 12:32:23 +13:00
Rob Bygrave 72f1ab18cc No effective change - rename parameter names only 2022-11-08 14:16:12 +13:00
Rob Bygrave b1bba9da5d #2774 - Tidy InExpression adding check and block for prop != null wrt prop.isDbEncrypted() and prop.isLocalEncrypted() 2022-11-08 11:12:46 +13:00
Rob Bygrave 8966faeb7e #2774 - Postgres ANY / MultiValueSupport with byte[]/binary data
Tidy up MultiValueBind.toArray() only
2022-11-08 09:33:09 +13:00
Rob Bygrave 14dddb4866 #2774 - Postgres ANY / MultiValueSupport with byte[]/binary data
Add Postgres specific support for binding an array of byte[] with ANY(?)
which is used as with client side encryption where the bind values are
implicitly converted to byte[].

Fixes Postgres specific failure running TestEncryptClientSide.java
2022-11-07 22:25:32 +13:00
Rob Bygrave 0a61852711 #2847 - Add support for Sub-query EQ, NE, LT, LE, GT, GE expressions 2022-11-03 00:22:48 +13:00
Rob Bygrave 6f5e144a93 Refactor tidy sql generated by InQueryExpression
Remove excess padding and () around the property name
2022-11-02 22:41:06 +13:00
Rob BygraveandGitHub 391b33beae Merge pull request #2880 from FOCONIS/feature/improve-enc-support
ADD encryption support for Between and InRange
2022-11-02 22:26:37 +13:00
Roland Praml 245ba9c6b3 ADD encryption support for Between and InRange 2022-11-02 09:52:56 +01:00
Roland Praml 66f4055b8f fix test 2022-11-02 08:24:26 +01:00
Roland Praml 5170b9f329 Merge branch 'master-rob2' into issue-2774/encryption-support-for-in 2022-11-02 08:15:10 +01:00
Roland Praml 3a2b20eb43 Merge remote-tracking branch 'upstream/master' into issue-2774/encryption-support-for-in 2022-11-02 07:53:32 +01:00
Rob Bygrave dd0ed8ea76 #2873 - Query Beans: Support more TQProperty's as target value for inRangeWith() 2022-11-02 17:35:00 +13:00
Roland Praml c5612d50fe #2774 Locally encrypted properties can be used in "in" queries 2022-10-27 14:38:41 +02:00
Rob BygraveandGitHub 8fd24491da Merge pull request #2869 from FOCONIS/fix-fallback-ebean11
FIX: Add fallback for Ebean 11 Jsons
2022-10-26 17:26:08 +13:00
Rob BygraveandGitHub 61deb2517c Merge pull request #2868 from FOCONIS/fix-tojsonnanos
FIX: toJsonNanos for calendar
2022-10-26 17:24:09 +13:00
Rob BygraveandGitHub faa58f0fe4 Merge pull request #2867 from FOCONIS/fix-flush-transaction
FIX: Flush transaction if it is modified in callback
2022-10-26 17:23:05 +13:00
Roland Praml e2d75f4c2e FIX: Add fallback for Ebean 11 Jsons 2022-10-25 11:37:49 +02:00
Roland Praml b56fa851e0 FIX: toJsonNanos for calendar 2022-10-25 11:04:26 +02:00
Roland Praml a82ba6d4aa FIX: Flush transaction if it is modified in callback 2022-10-25 10:58:06 +02:00
Rob BygraveandGitHub 22e1403f43 Merge pull request #2865 from FOCONIS/fix-typo
FIX: Typo
2022-10-25 21:48:11 +13:00
Roland Praml 9d60ebd19e FIX: Typo 2022-10-25 10:43:10 +02:00
Roland Praml f8c6a3c960 NEW: Ovverride service objects with DatabaseConfig.putServiceObject 2022-10-25 10:28:55 +02:00
Roland Praml f4c747c6af FIX: LogFormat for SystemLogger 2022-10-25 08:52:15 +02:00
Noemi Praml d710925cc7 possible Fix 2022-10-17 15:31:30 +02:00
Rob BygraveandGitHub 19bbe6e860 Merge pull request #2828 from ebean-orm/feature/jackson-mapper-module
Extract jackson mapper module
2022-10-14 12:39:43 +13:00
Rob BygraveandGitHub 62adaa7527 Merge pull request #2826 from ebean-orm/feature/json-node-module
Refactor extract ebean-jackson-jsonnode module - support for Jackson JsonNode (into separate module)
2022-10-14 12:39:27 +13:00
Rob Bygrave 9a25fb584c #2855 - @DbArray not allowing null to be persisted, stores empty list instead
Currently, this bug fix needs to be enabled explicitly via ebean.mf with:

allow-nullable-dbarray: true

We will look to enable this bug fix by default shortly noting that some code
will see a behaviour change. We need to publicise it well when we do turn
this on by default.

This bug fix is actually in ebean-agent 13.10.0 and all this change in ebean-core
does is read the new `@DbArray(nullable=false)` attribute [as a new alternative to
using `@NotNull` or `@Column(nullable=false)`]
2022-10-14 11:14:12 +13:00
Rob Bygrave 227968ef8e #2857 - @DbArray - slight performance optimisation for empty array 2022-10-14 08:16:43 +13:00
Rob Bygrave 8e02dedf9f #2856 - @DbArray - improve bind logging, non-null arrays auto bind null to [] so improve bind logging to reflect that 2022-10-14 08:14:12 +13:00
Rob Bygrave 318b22448c Extract ebean-jackson-mapper module - refactor DefaultTypeManager.dbJsonType()
- When detected markerAnnotation (e.g. Jackson annotation) then go directly to createJsonObjectMapperType()
- Simplify for the simple List, Set and Map of Object cases.
2022-09-08 23:01:05 +12:00
Rob Bygrave 610b3f7dc8 Extract ebean-jackson-mapper module - Change checkJacksonAnnotations() to instead use ScalarJsonMapper.markerAnnotation() 2022-09-08 22:38:10 +12:00
Rob Bygrave e74e4ba532 Extract ebean-jackson-mapper module - rename ScalarTypeJsonObjectMapper to ScalarJsonJacksonMapper and move 2022-09-08 22:09:10 +12:00
Rob Bygrave d5f753d110 Extract ebean-jackson-mapper module - initial step 2022-09-08 21:39:00 +12:00
Rob Bygrave cba3d24df1 Refactor DeployUtil rename methods (change/improve method names) 2022-09-07 22:56:43 +12:00
Rob Bygrave 27beab2980 Refactor internal TypeManager change/improve its method names 2022-09-07 22:53:15 +12:00
Rob Bygrave aeb4b8ed25 Refactor TypeManager - remove unnecessary add() method from interface allowing it to be private 2022-09-07 22:41:56 +12:00
Rob Bygrave edddc935df Update DefaultTypeManager to reuse PostgresHelper.isPostgresCompatible() 2022-09-07 22:38:09 +12:00
Rob Bygrave 5c1b478085 Refactor extract ebean-json-node module - support for Jackson JsonNode (into separate module) 2022-09-07 21:39:36 +12:00
Rob Bygrave cbd213aad3 #2823 - Revert JdbcTransaction.isActive() back to be non-final method 2022-09-05 17:02:45 +12:00
Rob Bygrave 674150dc75 Minor dependency bump for jackson, assertj-core, joda-time, h2database 2022-09-02 10:50:23 +12:00
Rob BygraveandGitHub c1320e4184 Merge pull request #2815 from ebean-orm/feature/2814-nestedUseSavepoint
#2814 - Change setNestedUseSavepoint() to use 'ScopeTrans' rather than the underlying Transaction
2022-09-02 08:20:53 +12:00
Rob BygraveandGitHub a7ea2cf3ef Merge pull request #2820 from ebean-orm/feature/2818-fix-concurrentModOfTransactionEvent
#2818 - Fix Concurrent modification of listenerNotify TransactionEvent list
2022-09-02 08:19:03 +12:00
Rob Bygrave bcc21b1c04 #2818 - Fix Concurrent modification of listenerNotify TransactionEvent list
The issue fixed here is that SavepointTransaction was effectively using the
TransactionEvent of the underlying 'parent' transaction. The fix is for
SavepointTransaction to have its own TransactionEvent.
2022-09-01 22:45:17 +12:00
Rob Bygrave d517dea27f ENH: Add Transaction.rollbackAndContinue() 2022-09-01 22:26:52 +12:00
Rob Bygrave 7df168f232 ENH: Add Transaction.rollbackAndContinue()
Typically useful for handling DuplicateKeyException where we expect
DuplicateKeyException to be thrown and catch it with the intention of
continuing processing using the same transaction.

Note that some databases like Oracle do not require this explicit
rollback() and would work without the rollbackAndContinue(). Postgres
in particular requires the rollback() call on the underlying connection
such that we can continue using that transaction/java.sql.Connection.

Note that in the existing test we can see that rollbackAndContinue()
is pretty close to being syntactic sugar. I think adding rollbackAndContinue()
is justified and complements the existing commitAndContinue().
2022-09-01 17:08:11 +12:00
Rob Bygrave 29e2b81092 #2813 - Sometimes subquery use wrong alias in SQL
The reason for this is that as part of DefaultOrmQuery.copy() it uses
DefaultExpressionList.copy() and that assumed that expressions were
safe to share which is NOT the case for IN and EXISTS sub-query expressions
so InQueryExpression and ExistsQueryExpression

The effective fix for this is that DefaultExpressionList.copy() changes
to call SpiExpression.copy() and for InQueryExpression and ExistsQueryExpression
to implement that copy() by creating a copy of the sub-query.

A "side-fix" is that in DefaultOrmQuery.createExtraJoinsToSupportManyWhereClause()
it was creating an instance of ManyWhereJoins, then mutating it ... and if we
change that to only doing the assignment at the end (object assignment is atomic)
then racy access reading ManyWhereJoins would always get a fully completed non-mutating
instance of ManyWhereJoins. Noting this because it kind of points to where I think
the race condition is (in createExtraJoinsToSupportManyWhereClause()) but noting that
with the change to DefaultExpressionList.copy() this "side-fix" isn't required per say.
2022-08-31 17:24:55 +12:00