diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java
index 448ec8eff5..d21d583ebd 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java
@@ -65,6 +65,7 @@ abstract class AbstractGenerator implements Generator {
boolean generateDaos = false;
boolean generateJPAAnnotations = false;
boolean generateValidationAnnotations = false;
+ boolean generateSpringAnnotations = false;
boolean generateGlobalObjectReferences = true;
boolean generateGlobalRoutineReferences = true;
boolean generateGlobalSequenceReferences = true;
@@ -223,6 +224,16 @@ abstract class AbstractGenerator implements Generator {
this.generateValidationAnnotations = generateValidationAnnotations;
}
+ @Override
+ public boolean generateSpringAnnotations() {
+ return generateSpringAnnotations;
+ }
+
+ @Override
+ public void setGenerateSpringAnnotations(boolean generateSpringAnnotations) {
+ this.generateSpringAnnotations = generateSpringAnnotations;
+ }
+
@Override
public boolean generateGlobalObjectReferences() {
return generateGlobalObjectReferences;
diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java b/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java
index 2453cdda2a..b08b1465df 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java
@@ -396,6 +396,8 @@ public class GenerationTool {
generator.setGenerateJPAAnnotations(g.getGenerate().isJpaAnnotations());
if (g.getGenerate().isValidationAnnotations() != null)
generator.setGenerateValidationAnnotations(g.getGenerate().isValidationAnnotations());
+ if (g.getGenerate().isSpringAnnotations() != null)
+ generator.setGenerateSpringAnnotations(g.getGenerate().isSpringAnnotations());
if (g.getGenerate().isGlobalObjectReferences() != null)
generator.setGenerateGlobalObjectReferences(g.getGenerate().isGlobalObjectReferences());
if (g.getGenerate().isGlobalRoutineReferences() != null)
diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java b/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java
index 8fdd65fe6e..a7f613ec75 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java
@@ -182,6 +182,18 @@ public interface Generator {
*/
void setGenerateValidationAnnotations(boolean generateValidationAnnotations);
+ /**
+ * Whether DAOs should be annotated with useful spring annotations such as
+ * @Repository or @Autowired
+ */
+ boolean generateSpringAnnotations();
+
+ /**
+ * Whether DAOs should be annotated with useful spring annotations such as
+ * @Repository or @Autowired
+ */
+ void setGenerateSpringAnnotations(boolean generateSpringAnnotations);
+
/**
* Whether global object references should be generated
*/
diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java
index 00bb4706e0..938dbf56e0 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java
@@ -2149,6 +2149,9 @@ public class JavaGenerator extends AbstractGenerator {
generateDaoClassJavadoc(table, out);
printClassAnnotations(out, table.getSchema());
+ if (generateSpringAnnotations())
+ out.println("@%s", out.ref("org.springframework.stereotype.Repository"));
+
if (scala)
out.println("class %s(configuration : %s) extends %s[%s, %s, %s](%s, classOf[%s], configuration)[[before= with ][%s]] {",
className, Configuration.class, daoImpl, tableRecord, pType, tType, tableIdentifier, pType, interfaces);
@@ -2177,6 +2180,10 @@ public class JavaGenerator extends AbstractGenerator {
}
else {
out.tab(1).javadoc("Create a new %s with an attached configuration", className);
+
+ if (generateSpringAnnotations())
+ out.tab(1).println("@%s", out.ref("org.springframework.beans.factory.annotation.Autowired"));
+
out.tab(1).println("public %s(%s configuration) {", className, Configuration.class);
out.tab(2).println("super(%s, %s.class, configuration);", tableIdentifier, pType);
out.tab(1).println("}");
diff --git a/jOOQ-examples/jOOQ-spring-example/pom.xml b/jOOQ-examples/jOOQ-spring-example/pom.xml
index 5665480f74..bdc331305f 100644
--- a/jOOQ-examples/jOOQ-spring-example/pom.xml
+++ b/jOOQ-examples/jOOQ-spring-example/pom.xml
@@ -19,9 +19,9 @@
UTF-8
4.1.2.RELEASE
- 3.6.2
+ 3.7.0-SNAPSHOT
1.4.181
- 1.8
+ 1.8
@@ -210,6 +210,8 @@
true
true
+ true
+ true
org.jooq.example.db.h2
diff --git a/jOOQ-meta/pom.xml b/jOOQ-meta/pom.xml
index 17099c3384..81ffd36d92 100644
--- a/jOOQ-meta/pom.xml
+++ b/jOOQ-meta/pom.xml
@@ -47,7 +47,7 @@
src/main/resources/xsd
src/main/resources/xjb/codegen
- jooq-codegen-3.6.0.xsd
+ jooq-codegen-3.7.0.xsd
org.jooq.util.jaxb
diff --git a/jOOQ-meta/src/main/resources/xjb/codegen/binding.xjb b/jOOQ-meta/src/main/resources/xjb/codegen/binding.xjb
index 8ff43e6953..18556a2edd 100644
--- a/jOOQ-meta/src/main/resources/xjb/codegen/binding.xjb
+++ b/jOOQ-meta/src/main/resources/xjb/codegen/binding.xjb
@@ -11,7 +11,7 @@
-
+
@@ -19,7 +19,7 @@
-
+
diff --git a/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.7.0.xsd b/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.7.0.xsd
index b8536784b0..d940e8f73c 100644
--- a/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.7.0.xsd
+++ b/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.7.0.xsd
@@ -687,6 +687,11 @@
-->
+
+
+
-
-
-