Я пытаюсь заставить генератор кода 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();
он выдает ошибку с жалобой на то, что идентификатор равен нулю, но тот же код работает, если я просто удаляю <jpaAnnotations>true</jpaAnnotations>
из конфигурации генератора jooq. Когда я смотрю на сгенерированные классы, кажется, что в классе 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);
}
Может ли кто-нибудь предложить решение для этого?