Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jOOQ不使用<;生成DAO;daos>;标志设置为true_Java_Sql_Eclipse_Sqlite_Jooq - Fatal编程技术网

Java jOOQ不使用<;生成DAO;daos>;标志设置为true

Java jOOQ不使用<;生成DAO;daos>;标志设置为true,java,sql,eclipse,sqlite,jooq,Java,Sql,Eclipse,Sqlite,Jooq,我已经刷新了我的项目,干净地重建了它,在谷歌上搜索了StackOverflow以查找类似的问题,阅读了jOOQ文档,检查了构建输出的潜力,等等 我在pom.xml中添加了一个标志来生成jOOQ数据库访问对象,因为jOOQ 3.2.0在线“可以使用daos标志激活DAO生成”。根据jOOQ Advanced Codegen,将此标志设置为true不仅会生成DAO,还会生成关系、记录和POJO: <generator> ... <generate>

我已经刷新了我的项目,干净地重建了它,在谷歌上搜索了StackOverflow以查找类似的问题,阅读了jOOQ文档,检查了构建输出的潜力,等等

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

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

...
真的
在将标志添加到pom之前,我已经自动生成了记录和关系,但POJO和DAO都没有。在添加
daos
标志并重建我的项目之后,我还有pojo和其他两个,但我仍然没有任何daos。附加的屏幕截图显示了我生成的类。由标志添加的类位于中。我认为应该有一个名为“daos”的包,其中包含PurchaseDAO和UserDAO类

jOOQ DAO没有解释添加标志但不生成DAO的任何情况。这个项目的一部分目的是学习jOOQ,所以用jOOQ类手动编写DAO并不能解决我的问题


编辑:工作和非工作解决方案中的SQLite 3.7.11模式是。

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

信息:生成DAOs 2014年1月16日下午12:40:45 org.jooq.tools.JooqLogger信息:跳过DAO生成: PurchaseDao.java 2014年1月16日12:40:45 PM org.jooq.tools.JooqLogger 信息:跳过DAO生成:UserDao.java 2014年1月16日 下午12:40:45 org.jooq.tools.JooqLogger信息:生成的表DAO :总计:212.968ms,+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年)也面临同样的问题

在配置文件中,使用与联机命令相同的命令, e、 g:

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”放在标记“generator”之间

例如:


...
假的
真的
...

有关这些参数的详细信息,请参见。

必须解决配置
includeprimary键的问题

<includePrimaryKeys>true</includePrimaryKeys>
true

刚刚检查了JOOQ版本3.2,一切正常,生成了DAO,顺便说一句,生成的DAO是org.JOOQ.impl.DAOImpl的简单实现,大多数DAO方法都存在于该类中,只生成了一些find/fetch附加方法。不@SergiiZagriichuk,尽管有DAOs标志,但它们并没有在我的项目中生成。如果正在生成DAO,我不会问这个问题。也许您还需要
true
?@assylias no DAOs->enablespojos@JaneGoodall你试过从控制台还是从Eclipse?哇,谢谢,这看起来是解决方案。我将重新生成表以使用非row_id主键。如果可行,我将对此进行更新投票并将其标记为已接受。如果其他人正在阅读此内容,您可能需要刷新项目以查看DAO。只需在Eclipse中右键单击项目并选择“刷新”。@JaneGoodall:非常有趣!您是否介意在问题中添加一个带有“row_id主键”的表的DDL,以便将来的访问者了解可能出现的问题?我想这是非常特别的,因为我使用的db用户没有返回主键信息的权限。因此,我尝试了一个具有提升权限的用户,并创建了DAO。数据库是Postgres,用户可能缺少对information_schema或生成这些信息所需的某些其他表的权限。
<includePrimaryKeys>true</includePrimaryKeys>