2016-08-01 90 views
0

我有2个一级用户,一个是电话。 我有双向映射一个用户可以有多个电话号码。休眠一对多双向问题

User{ 
private int id; 

private String name; 

@OneToMany(cascade=CascadeType.ALL, mappedBy="user") 
List<Phone> phoneList; 

//get set// 


} 

class Phone{ 

private int id; 
private String number; 
@ManyToOne(cascade=CascadeType.ALL) 
private User user; 


} 

现在假设如果用户有2个电话号码 现在,当我得到用户和与用户获取电话号码。 如果我想要一个电话号码,我还会得到两个号码。 那么有没有办法只得到一个号码。

+0

哪个电话号码?如果您加载用户,该用户将显然拥有多个电话......因为他们有多个电话。你可以做一个查询来得到一个特定的电话 –

回答

0

问题是你想得到哪个数字?恩。用户当前,有史以来第一次使用或特定的一个...?

用户可以参考数字列表,并通过索引(例如phoneList [0])访问它们并对其进行处理。最常见的方法是使用LINQ工具来完成复杂的任务或特定的数字。

+0

LINQ与JPA和休眠有什么关系我不太确定... –

+0

在休眠当我得到一个用户,然后如果我尝试获取电话号码,它获得所有列表与用户关联的电话号码。但我想要一个电话号码。有没有任何过滤器或任何其他方式来这样做。 @尼尔斯托克顿 –