当bean类与一对多注释链接时,使用hibernate在db上选择查询:

时间:2016-09-22 16:28:34

标签: hibernate

下面是我的两个班级

@Entity
@table(名称="用户&#34)
公共类用户{

@Id
@Column(name="users_id")
private String userId;

@Column(name="uname")
private String userName;

@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="users_id")
private Set<Address> addresses;

getters & setters

}

@Entity
@table(名称=&#34;地址&#34)
公共类地址{

@Id
@Column(name="address_id")
private String addressId;

@Column(name="City")
private String City;

@ManyToOne
private User user;

setters & getters

}

用户和地址是两个表,其中单个用户可以拥有多个地址。 userID是这两个表之间的公共列。

现在我想写一个select查询来从User表中获取用户的详细信息以及与该用户相关的所有地址,并相应地准备一个bean列表。

请帮助。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我假设你正在使用hibernate Session而不是JPA EntityManager。 此查询将返回ID为&#34; 123&#34;填写相应的地址。

Query query = session.createQuery("select user from User user left join fetch user.addresses where user.userId = :userId");
query.setParameter("userId", "123");
User user = (User) query.uniqueResult();