我必须要相互映射的表格。 我想填充2个下拉列表:code_r和code_l。 当我从code_r中选择一个值时,code_l应该只显示某些记录。 在我的数据库中,我有2个表:
Table code_r
===================
CODE INT
LIBELLE VARCHAR
并且
Table code_l
===================
ID BIGINT
CODE_R_ID INT
LIBELLE VARCHAR
一个code_r可以有多个与之关联的code_l(基于code_r_id(不是在code_l定义中定义为外键)。当然,code_l只能与一个code_r相关联。
以下SQL查询可以正常工作:
SELECT *
FROM code_r r
left join `code_l` l on l.code_r_id = r.code;
如何在CodeR和CodeL类中使用JPA / Hibernate-3.5注释来实现它?
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:3)
:
@OneToMany(的mappedBy = “code_r_id”)
收集elementsFromL;
:
@ManyToOne
CodeR code_r_id;
答案 1 :(得分:3)
使用Hibernate(现在在JPA 2.0中标准化),您可以使用单向一对多关联,而无需使用JoinColumn
注释的连接表:
像这样注释CodeR:
@Entity
public class CodeR {
@Id
private Integer code;
private String libelle;
@OneToMany
@JoinColumn(name="CODE_R_ID")
Set<CodeL> codeLs = new HashSet<CodeL>():
// getters, setters
}
和CodeL
@Entity
public class CodeL {
@Id
private Integer id;
private String libelle;
// getters, setters, equals, hashCode
}
和JPQL查询:
SELECT r FROM CodeR LEFT JOIN r.codeLs