java – jOOQ不生成标志设置为true的DAO

我已经刷新了我的项目,干净地重建了它,用Google搜索/搜索了StackOverflow的类似问题,阅读了jOOQ文档,检查了构建输出的潜在 issues等等.

添加一个< daos>标记到我的pom.xml以生成jOOQ数据库访问对象,因为jOOQ 3.2.0在线manual says“可以使用daos标志激活DAO生成”.根据jOOQ Advanced Codegen documentation将此标志设置为true,不仅会生成DAO,还会生成关系,记录和POJO:

<generator>
    ...
    <generate>
        <daos>true</daos>
    </generate>   
</generator>

在将标志添加到我的pom之前,我有自动生成的记录和关系,但既没有POJO也没有DAO.添加daos标志并重建我的项目后,我也有POJO加上另外两个,但我仍然没有任何DAO.附带的屏幕截图显示了我生成的类.标志添加的类在blue box中.我认为应该有一个名为“daos”的包,其中包含PurchaseDAO和UserDAO类.

jOOQ DAO documentation没有解释添加标志但未生成DAO的任何情况.该项目的部分重点是学习jOOQ,因此使用jOOQ类手动编码DAO无法解决我的问题.

编辑:来自工作和非工作解决方案的我的sqlite 3.7.11模式是here.

解决方法

我在你的控制台输出中发现DAO正在跳过,

INFO: Generating DAOs Jan 16,2014 12:40:45 PM
org.jooq.tools.JooqLogger info INFO: Skipping DAO generation :
PurchaseDao.java Jan 16,2014 12:40:45 PM org.jooq.tools.JooqLogger
info INFO: Skipping DAO generation : UserDao.java Jan 16,2014
12:40:45 PM org.jooq.tools.JooqLogger info INFO: Table DAOs generated
: Total: 212.968ms,+1.759ms

之后,cheked代码,然后找到

// [#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        }

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...