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



下面是我的两个类

@ entity
@ table (name = "用户")
公共类User {

@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 (name ="地址")
公共类地址{

@Id
@Column(name="address_id")
private String addressId;
@Column(name="City")
private String City;
@ManyToOne
private User user;
setters & getters

}

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

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

请帮助。

我假设您正在使用hibernate Session而不是JPA EntityManager。此查询将返回id为"123"的用户,并填写相应的地址。

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();

最新更新