1
我试图让jooq代码生成器,用下面的选项JOOQ代码生成器,H2 AUTO_INCREMENT PK与
<generate>
<pojos>true</pojos>
<jpaAnnotations>true</jpaAnnotations>
</generate>
为表工作japAnnotations:
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);
}
可以在任何建议为它的位置吗?
看起来你已经找到了解决方案,你的问题 - 很好的抓住!你知道你可以在堆栈溢出回答你自己的问题吗?这样,未来的访问者有同样的问题将很容易找到解决方案作为答案... –
谢谢!我已经添加了一个答案,任何人遇到相同的问题 – John
完美,感谢记录这一点,约翰。这对其他人肯定会有用 –