我有3个桌子和3个后续实体,这些公司有一个OneToMany,用户有一个带衬衫的OneToMany。
所以要明确每个公司都有很多用户,每个用户都有很多衬衫。
公司有2列CompanyId和CompanyName 用户有3列UserId,Username和CompanyId(这是外键) 衬衫有4列ShirtId,ShirtColor,ShirtBrand和UserId(这是外键)
目前我有一个像这样的命名查询
@NamedQuery(name="Company.getCompanyById", query="SELECT c FROM Company c WHERE c.companyId = :companyId")
当我调用此查询并传递companyId时,我会返回一个包含compnay的对象,该公司的所有用户以及该用户的所有衬衫。在JSON中,它看起来像这样
{
CompanyId:1,
CompanyName:"ABC Inc",
{Users:[{UserId:1,Usernmae:"James",
Shirts:{[
{Color:"Blue", Brand:"GAP"},
{Color:"Blue", Brand:"Old Navy"}]
}
}]}
}
现在,如果我想要一个类似的查询,但只返回颜色为DISTINCT的衬衫给特定用户我该怎么办呢?
所以它会像
{
CompanyId:1,
CompanyName:"ABC Inc",
{Users:[{UserId:1,Usernmae:"James",
Shirts:[Blue]
}]}
}
感谢您的帮助