我知道这不是一个特别的编程问题,更像是一个如何使用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;
但是,它似乎并没有像那样工作。事实上,它在很多方面都令人困惑。
首先,表中的FK列默认未选中用于生成,因此如果只是在表名旁边检查(不扩展表节点以查看未选中该列),则实体bean根本无法得到映射到该列的字段。
其次,“属性”的命名令人困惑。如果我检查Table1应该在实体中生成Table2id列,并且我还尝试在该列上添加关系,它会抱怨我只能使用一个唯一的属性名称。这似乎有意义(但是,我不确定选择导入关系而不是列应该生成上面的代码)所以我试图取消选择列导入并选择导入关系。仍无济于事。
最后,如果我选择了FK列本身,或者Table1中的关系进行导入,我无法检查Table2中的Table2Id标识列是否导入,投诉是一样的,它不能使用相同的属性名称一次(这对我来说没有意义,因为Table2Entity需要代码中的id。)
所以...我在配置导入过程时遗漏了什么?我正在使用IntelliJ 14 Ultimate。
或者我应该开始研究其他工具,而不是IntelliJ?