1
採用最新jOOQ與H2 1.4.194在Keys.java
沒有外鍵以下(減少)模式生成:如何讓jOOQ生成不引用主鍵的複合外鍵?
CREATE TABLE t (a INT, b INT, PRIMARY KEY (a));
CREATE TABLE u (a INT, b INT, FOREIGN KEY (a,b) REFERENCES t (a,b));
添加唯一約束如下沒有幫助:
CREATE TABLE t (a INT, b INT, PRIMARY KEY (a), UNIQUE (a,b));
CREATE TABLE u (a INT, b INT, FOREIGN KEY (a,b) REFERENCES t (a,b));
更改FK以引用主鍵(無論是簡單還是複合)使FK顯示。
通過H2查詢FK正常工作。
看起來不像迴歸(嘗試過各種3.x jOOQ的),所以想知道我是否做錯了什麼。發電機配置(通過Maven插件)如下:
<name>org.jooq.util.JavaGenerator</name>
<database>
<name>org.jooq.util.h2.H2Database</name>
<includes>.*</includes>
<excludes />
<inputSchema>PUBLIC</inputSchema>
</database>
你有一個唯一約束或索引在't(a,b)'?上?它應該與一個約束一起工作,但也許沒有索引 –
我實際上在我的非簡化例子中有一個唯一的約束 - 沒有幫助。有趣的是,約束本身被生成爲'createUniqueKey(T.T,「X」,T.T.A);' - 應該是'createUniqueKey(T.T,「X」,T.T.A,T.T.B);',對吧?再次,這在INFORMATION_SCHEMA中是正確的。 – coudy
感謝您的詳細信息。也許,爲了完整起見,你能否用確切的唯一約束來更新你的問題?我認爲這是一個錯誤。那麼很快就會進行調查並給你一個答案。 –