假设我有2个表A和B.
Table A: id, code1, code2, code3, code4 (id is the primary key)
Table B: codeID, displayText, someOtherColumn (codeID is the primary key)
code1,code2,code3和code4只是表B中的CodeID
现在我有课
class Foo {
@Id
@Column(name="id")
private String id;
//Now How To Get the displayText based on codeID in Table B?
private String code1Display;
private String code2Display;
private String code3Display;
private String code3Display
}
我以为我应该使用“SecondaryTable”注释。但是从阅读克里斯在这里的回复来看,这是行不通的。那我该如何在这里实现我的目标呢?
我只需要阅读这些值,而不是保存。
答案 0 :(得分:0)
如果未指定列信息,则属性code1Display,code2Display等的映射将默认在主表A上使用字段“CODE1DISPALY”,“CODE2DISPLAY”等。因此,对于每个属性映射,您需要指定该字段存在于该表中:
@Column(name = "CODE1", table = "B")
private String code1Display;
辅助表注释用于指定第二个表以及它如何链接到主表。见http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Entities/SecondaryTable。但在你的情况下,它只是:
@SecondaryTable(name =“B”,pkJoinColumns = @ PrimaryKeyJoinColumn(name =“codeID”))