我刷新了我的项目,干净利落地重建了它,搜索/搜索了StackOverflow中类似的问题,阅读了jOOQ文档,检查了构建输出的潜在问题,等等。
我在pom.xml中添加了一个pom.xml标志来生成jOOQ数据库访问对象,因为jOOQ 3.2.0在线手册上说 "DAO生成可以使用daos标志激活“。根据jOOQ Advanced 文档,将此标志设置为true不仅生成DAO,而且生成关系、记录和POJO:
<generator>
...
<generate>
<daos>true</daos>
</generate>
</generator>在将标志添加到我的pom之前,我有自动生成的记录和关系,但是没有POJO或DAOs。在添加daos标志并重新构建我的项目之后,我还拥有POJO和另外两个POJO,但是我仍然没有任何DAO。附带的屏幕截图显示了我生成的类。由标志添加的类在蓝盒中。我认为在PurchaseDAO和UserDAO类中应该有一个名为"daos“的包。
jOOQ DAO 文档没有解释添加标志的任何情况,但不生成DAO。这个项目的部分目的是学习jOOQ,所以用jOOQ类手动编写DAO不会解决我的问题。
编辑:我的SQLite 3.7.11模式来自工作解决方案和非工作解决方案,它们是这里。
发布于 2014-01-16 21:33:08
我在您的控制台输出中发现DAO正在跳过,
信息:生成DAOs 1月16日,2014年12:40:45 PM org.jooq.tools.JooqLogger信息信息:跳过DAO生成: PurchaseDao.java Jan 16,2014年12:40:45 org.jooq.tools.JooqLogger信息:跳过DAO生成: UserDao.java Jan 16,12:40:45 PM org.jooq.tools.JooqLogger信息信息:表DAO生成:总计:212.968 40,+1.759ms
在那之后的代码找到了下一步
// [#2573] Skip DAOs for tables that don't have 1-column-PKs (for now)
1287 if (keyColumn == null) {
1288 log.info("Skipping DAO generation", getStrategy().getFileName(table, Mode.DAO));
1289 return;
1290 }发布于 2017-12-28 13:04:22
我今天(2017年)也面临着同样的问题。
在您的配置文件中,使用了相同的在线命令,例如:
java -classpath jooq-3.10.2.jar:jooq-meta-3.10.2.jar:jooq-codegen-3.10.2.jar:mysql-connector-java-5.1.45-bin.jar:. org.jooq.util.GenerationTool 在configuration.xml,中,放置在标记之间的标记分别为“生成器”、“生成”和参数。
例如:
<generator>
...
<generate>
<pojos>false</pojos>
<daos>true</daos>
...
</generate>
</generator> 有关这些参数的更多信息,这里。
发布于 2019-08-22 10:02:27
必须解决配置includePrimaryKeys。
<includePrimaryKeys>true</includePrimaryKeys>https://stackoverflow.com/questions/21172582
复制相似问题