1

如何在休眠和 Spring 中加入两个表。下面是我的 suto java 代码,我需要在 objectA 上进行连接,其中名称字段等于 objectB 中的名称字段,但我将在 ObjectA ID 字段上进行搜索,但我需要返回。对象 A ID、对象 A 名称、对象 A 区域、对象 B 地址。

//
// 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代码中做到这一点。

4

3 回答 3

4

将此添加到您的 A 类:

@OneToOne
@JoinColumn(name="name")
private ObjectB objectB;

因此,当您检索 A 时,您将按名称进入相应的 B 中。

于 2012-09-28T12:13:53.483 回答
0

在 where 子句中使用带有条件的交叉连接来限制连接。这是我所知道的唯一一个好方法(除了原生 sql),当两个对象之间没有映射关系时连接它们。

您可以使用 hql 查询轻松完成此操作

select a.id, a.name, a.region, b. address
from ObjectA a, ObjectB b
where a.id = b.id
于 2012-09-28T12:56:24.383 回答
0

您还可以使用内连接
select A.ID,A.Name,A.Regin,B.Address from ObjectA as A 内连接 ObjectB as B

于 2012-09-28T14:00:44.950 回答