【发布时间】:2016-03-13 00:30:00
【问题描述】:
我正在尝试让 jooq 代码生成器使用以下选项
<generate>
<pojos>true</pojos>
<jpaAnnotations>true</jpaAnnotations>
</generate>
表:
CREATE TABLE PUBLIC.MSG_LOG (
ID BIGINT AUTO_INCREMENT PRIMARY KEY,
IN_DATASOURCE VARCHAR(63),
OUT_DATASOURCE VARCHAR(63),
MSG VARCHAR(255),
TIMESTAMP TIMESTAMP NOT NULL
);
当我运行下面的代码时
MsgLogRecord msgLog = dslContext.newRecord(MsgLog.MSG_LOG);
msgLog.setInDatasource(inputSource);
msgLog.setOutDatasource(outputSource);
msgLog.setMsg(Joiner.on("").skipNulls().join(message));
msgLog.setTimestamp(Timestamp.valueOf(LocalDateTime.now()));
msgLog.store();
它会抛出一个错误,抱怨 ID 为空,但如果我只是从 jooq 的生成器配置中删除 <jpaAnnotations>true</jpaAnnotations>,则相同的代码可以工作。当我查看生成的类时,似乎 MsgLogRecord 类缺少@Generated 注释,
/**
* Getter for <code>PUBLIC.MSG_LOG.ID</code>.
*/
@Id
@Column(name = "ID", unique = true, nullable = false, precision = 19)
public Long getId() {
return (Long) getValue(0);
}
任何人都可以提出解决办法吗?
【问题讨论】:
-
看起来您已经找到了解决问题的方法 - 不错!你知道你可以回答你自己关于堆栈溢出的问题吗?这样,以后遇到相同问题的访问者将很容易找到解决方案作为答案...
-
谢谢!我已经添加了一个答案,以防其他人遇到同样的问题
-
完美,感谢您记录这一点,约翰。这肯定对其他人有用