下面是我的两个类
@ 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();