如何在hibernate和Spring中连接两个表。下面是我的suto java代码,我需要在objectA上进行连接,其中name字段等于objectB中的name字段,但我将在ObjectA ID字段上搜索,但我需要返回。 ObjectA ID,ObjectA Name,ObjectA Regin,ObjectB Address。
//
// CLASS OBJECT A
//
@Entity
@Table(name = "tableA")
public class ObjectA {
@Id
@Column(name = "id")
private String id;
@Column(name = "name")
private String name;
@Column(name = "region")
private String region;
}
//
// CLASS OBJECT B
//
@Entity
@Table(name = "tableB")
public class ObjectB {
@Id
@Column(name = "id")
private String id;
@Column(name = "name")
private String name;
@Column(name = "address")
private String address;
}
有人可以告诉我如何在java代码中执行此操作。
答案 0 :(得分:4)
将此添加到您的A类:
@OneToOne
@JoinColumn(name="name")
private ObjectB objectB;
因此,当您检索A时,您将按名称进入相应的B。
答案 1 :(得分:0)
使用带有where子句中的条件的交叉连接来限制连接。这是我所知道的唯一好办法(除本机sql之外),当它们之间没有映射关系时加入两个对象。
您可以使用hql查询轻松完成此操作
select a.id, a.name, a.region, b. address
from ObjectA a, ObjectB b
where a.id = b.id
答案 2 :(得分:0)
您也可以使用内部联接
选择A.ID,A.Name,A.Regin,B.Address
从ObjectA作为内部联接ObjectB作为B