diff --git a/pom.xml b/pom.xml
index 6351d116b..ea16b2258 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,7 +37,7 @@
- * This is only supported if "Enhancement" is used via javaagent, ANT
- * task or IDE enhancement plugin etc.
- *
- * Note: Currently there are 3 known annotations that perform this role.
- *
- *
- * Spring created their one because the EJB annotation does not support features
- * such as isolation level and specifying rollbackOn, noRollbackOn exceptions.
- * This one exists for Ebean because I agree that the standard one is
- * insufficient and don't want to include a dependency on Spring.
- *
- * The default behaviour of EJB (and hence Spring) is to NOT ROLLBACK on checked - * exceptions. I find this very counter-intuitive. Ebean will provide a property - * to set the default behaviour to rollback on any exception and optionally - * change the setting to be consistent with EJB/Spring if people wish to do so. - *
- *- *
{@code
- *
- * // a normal class
- * public class MySimpleUserService {
- *
- * // this method is transactional automatically handling
- * // transaction begin, commit and rollback etc
- * @Transactional
- * public void runInTrans() throws IOException {
- *
- * // tasks performed within the transaction
- * ...
- * // find some objects
- * Customer cust = ebeanServer.find(Customer.class, 42);
- *
- * Order order = ...;
- * ...
- * // save some objects
- * ebeanServer.save(customer);
- * ebeanServer.save(order);
- * }
- *
- * }
- */
-@Target({ElementType.METHOD, ElementType.TYPE})
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Transactional {
-
- /**
- * The type of transaction scoping. Defaults to REQUIRED.
- */
- TxType type() default TxType.REQUIRED;
-
- /**
- * Persist batch mode for the transaction.
- */
- PersistBatch batch() default PersistBatch.INHERIT;
-
- /**
- * Persist batch mode for the request if not set on the transaction.
- * - * If batch is set to NONE then batchOnCascade can be set to INSERT or ALL - * and then each save(), delete(), insert(), update() request that cascades - * to child beans can use JDBC batch. - *
- */ - PersistBatch batchOnCascade() default PersistBatch.INHERIT; - - /** - * The batch size to use when using JDBC batch mode. - *- * If unset this defaults to the value set in ServerConfig. - *
- */ - int batchSize() default 0; - - /** - * Set to false when we want to skip getting generatedKeys. - *- * This is typically used in the case of large batch inserts where we get a - * performance benefit from not calling getGeneratedKeys (as we are going to - * insert a lot of rows and have no need for the Id values after the insert). - *
- */ - boolean getGeneratedKeys() default true; - - /** - * The transaction isolation level this transaction should have. - *- * This will only be used if this scope creates the transaction. If the - * transaction has already started then this will currently be ignored (you - * could argue that it should throw an exception). - *
- */ - TxIsolation isolation() default TxIsolation.DEFAULT; - - /** - * Set this to true if the transaction should be only contain queries. - */ - boolean readOnly() default false; - - /** - * The name of the server that you want the transaction to be created from. - *- * If left blank the 'default' server is used. - *
- */ - String serverName() default ""; - - // int timeout() default 0; - - /** - * The Throwable's that will explicitly cause a rollback to occur. - */ - Class extends Throwable>[] rollbackFor() default {}; - - /** - * The Throwable's that will explicitly NOT cause a rollback to occur. - */ - Class extends Throwable>[] noRollbackFor() default {}; - -} diff --git a/src/main/java/io/ebean/annotation/package-info.java b/src/main/java/io/ebean/annotation/package-info.java deleted file mode 100644 index 9dcb5b414..000000000 --- a/src/main/java/io/ebean/annotation/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Transactional annotations. - */ -package io.ebean.annotation; diff --git a/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java b/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java index 19dd45426..51bcedd38 100644 --- a/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java +++ b/src/main/java/io/ebeaninternal/server/deploy/parse/AnnotationFields.java @@ -91,7 +91,6 @@ public class AnnotationFields extends AnnotationParser { boolean javaxValidationAnnotations, boolean jacksonAnnotationsPresent, boolean eagerFetchLobs) { super(info, javaxValidationAnnotations); - this.jacksonAnnotationsPresent = jacksonAnnotationsPresent; this.generatedPropFactory = generatedPropFactory; @@ -317,6 +316,10 @@ public class AnnotationFields extends AnnotationParser { prop.setExcludedFromHistory(); } + io.ebean.annotation.NotNull nonNull = get(prop, io.ebean.annotation.NotNull.class); + if (nonNull != null) { + prop.setNullable(false); + } if (validationAnnotations) { NotNull notNull = get(prop, NotNull.class); if (notNull != null && isEbeanValidationGroups(notNull.groups())) {