如何在hibernate和Spring中连接两个表

时间:2012-09-28 12:09:59

标签: java spring hibernate spring-webflow

如何在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代码中执行此操作。

3 个答案:

答案 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