1
我想第一次在JPA上工作,善意地混淆我如何获取父值。如何获取父值
这里是我的表结构
T1(
id (pk),
name (varchar)
)
T2(
id (pk),
t1_id (fk_t1),
number (int)
)
T3 (
id (pk),
t2_id (fk_t2),
time (datetime)
zone (tinyint),
name (varchar)
)
如果我在SQL工作,我可以用这个查询
select * from T3, T2, T1
where T3.time = <given_time>,
and T3.name = <given_name>,
and T3.t2_id = T2.id,
and T2.t1_id = T1.id
现在,我怎么能这样转移到JPA。我可以使用命名查询,这不是问题。但我应该如何构造这个对象。
到目前为止,我有这个
@Entity
@Table(name="T3, schema="", catalog="dbname")
public class T3Entity{
private int id;
private DateTime datetime;
private int zone;
private String name;
@Id
@Column(name="id", nullable=false, insertable=true, updatable=true)
//GETTER/SETTERS
@Basic
@Column(name="datetime", nullable=false, insertable=true, updatable=true)
//GETTER/SETTERS
@Basic
@Column(name="zone", nullable=false, insertable=true, updatable=true)
//GETTER/SETTERS
@Basic
@Column(name="name", nullable=false, insertable=true, updatable=true)
//GETTER/SETTERS
}
现在在这里,我很困惑。我应该创建另一个字段T2
(每个孩子的父字段),然后注释?如何注释?自定义查询会自动设置这些对象的值吗?
我会如何编写查询?鉴于我在'T3Entity'中有'T2Entity',我不能使用'T3Entity.id = T2Entity.id' ?????? –
您使用JPA连接:'SELECT t1,t2,t3 FROM T1Entity t1 JOIN t1.t2 t2 JOIN t2.t3 t3 WHERE t3.time =:time and t3.name =:name',参见http://wiki.eclipse .ORG /的EclipseLink/UserGuide/JPA/Basic_JPA_Development /查询/ JPQL#FROM_Clause – wero