JPA OneToMany与独特的关系

时间:2016-12-07 16:17:32

标签: java mysql jpa

我有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]                 
     }]} 
}

感谢您的帮助

0 个答案:

没有答案