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
感谢您的详细信息。也许,为了完整起见,你能否用确切的唯一约束来更新你的问题?我认为这是一个错误。那么很快就会进行调查并给你一个答案。 –