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
完美,感謝記錄這一點,約翰。這對其他人肯定會有用 –