如何使用IDEA IntelliJ自动生成表之间的外键依赖关系?

And*_*vid 6 jpa intellij-idea auto-generate

我知道这不是一个特别的编程问题,更像是一个如何使用IDE的问题,但至少上下文似乎是合适的.

我已经找到了问题并找到了这个链接 https://www.jetbrains.com/idea/help/mapping-by-database-schema.html 并尽可能地利用它,但我仍然无法实现我的目标我在努力.

假设我已经在DB中生成了Table1和Table2,Table1具有一对一FK"Table2Id"列.

由于有人谈到在生成之前配置表关系(通过joincolumns和属性类型),我希望"导入数据库模式"对话框和工具除了从数据库表列生成明显的@Basic和@Id列之外,还可以能够在Table1Entity代码中生成FK关系,ala

@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, optional = true)
@JoinColumn(name = "TABLE2ID", nullable = false)
private Table2Entity fkEntity;
Run Code Online (Sandbox Code Playgroud)

但是,它似乎并没有像那样工作.事实上,它在很多方面都令人困惑.

首先,表中的FK列默认未选中用于生成,因此如果只是在表名旁边检查(不展开表节点以查看未选择该列),则实体bean根本不会获取映射到的字段那一栏.

其次,"属性"的命名令人困惑.如果我检查Table1应该在实体中生成Table2id列,并且我还尝试在该列上添加关系,它会抱怨我只能使用一个唯一的属性名称.这似乎有意义(但是,我不确定选择导入关系而不是列应该生成上面的代码)所以我试图取消选择列导入并选择导入关系.仍无济于事.

最后,如果我选择FK列本身,或者选择Table1中的关系进行导入,我无法检查Table2中的Table2Id标识列是否导入,投诉是相同的,它不能多次使用相同的属性名称(这个对我来说没有意义,因为Table2Entity需要代码中的id).

所以......我在配置导入过程时遗漏了什么?我正在使用IntelliJ 14 Ultimate.

或者我应该开始研究其他工具,而不是IntelliJ?