下面是我的两个班级
@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列表。
请帮助。 提前谢谢。
答案 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();