Java 基本的Hibernate/JPA映射问题
我必须找到我想相互映射的表。 我想填充两个下拉列表:代码和代码。 当我从代码中选择一个值时,代码应该只显示某些记录。 在我的数据库中,我有两个表:Java 基本的Hibernate/JPA映射问题,java,hibernate,jpa,annotations,mapping,Java,Hibernate,Jpa,Annotations,Mapping,我必须找到我想相互映射的表。 我想填充两个下拉列表:代码和代码。 当我从代码中选择一个值时,代码应该只显示某些记录。 在我的数据库中,我有两个表: Table code_r =================== CODE INT LIBELLE VARCHAR 及 一个代码可以有多个与之关联的代码(基于代码id(不是定义为代码定义中的外键)。当然,一个代码只能与一个代码关联 以下SQL查询工作正常: SELECT * FROM code_r r left joi
Table code_r
===================
CODE INT
LIBELLE VARCHAR
及
一个代码可以有多个与之关联的代码(基于代码id(不是定义为代码定义中的外键)。当然,一个代码只能与一个代码关联
以下SQL查询工作正常:
SELECT *
FROM code_r r
left join `code_l` l on l.code_r_id = r.code;
我应该如何在CodeR和CodeL类中使用JPA/Hibernate-3.5注释来实现这一点
任何帮助都将不胜感激。提前感谢。在编码器课程中:
@OneToMany(mappedBy=“code\r\u id”)
收集元素FROML
在CodeL类中: @许多酮 编码器代码\u r\u id;使用Hibernate(现已在JPA 2.0中标准化),您可以使用单向一对多关联,而无需使用连接表,使用
JoinColumn
注释:
对编码者进行如下注释:
@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
}
和JPQL查询:
SELECT r FROM CodeR LEFT JOIN r.codeLs
祝贺您在上一届奥运会上获得金牌Hibernate@Arthur非常感谢,衷心感谢。下一个目标,JPA:)非常感谢帕斯卡,它成功地获得了每个编码器的代码列表。但不幸的是,当我试图获得一个编码器列表时,每个编码器都会对其关联的每个编码器进行复制(左连接而不是内部连接?)。我怎样才能解决这个问题??提前谢谢?谢谢你的回答,Q.C:-)
@Entity
public class CodeL {
@Id
private Integer id;
private String libelle;
// getters, setters, equals, hashCode
}
SELECT r FROM CodeR LEFT JOIN r.codeLs