zoukankan      html  css  js  c++  java
  • 一对多类中,根据多的的一方的某个属性获得一的一方的list

    一的一方:AppVsStaff.java

    AppVsStaff中包含两个多的一方,Applications.java和StaffDict.java

    import org.hibernate.annotations.NotFound;
    import org.hibernate.annotations.NotFoundAction;
    import javax.persistence.*;
    import javax.validation.constraints.NotNull;
    import javax.validation.constraints.Size;
    
    @Entity
    @Table(name = "APP_VS_STAFF")
    public class AppVsStaff {
      @Id
      @Column(name="APP_VS_EMP_ID")
      @NotNull(message = "应用程序人员关系ID不能为空")
      @Size(min = 1,max = 20,message = "应用程序人员关系ID不能超过20字且不能为空")
      private String  AppVsEmpId;
    
      @JoinColumn(name = "APP_ID")
      @ManyToOne
      @NotFound(action = NotFoundAction.IGNORE)
      private Applications applications;
    
      @JoinColumn(name = "EMP_ID")
      @ManyToOne
      @NotFound(action = NotFoundAction.IGNORE)
      private StaffDict staffDict;
    
      @Column(name="CAPABILITY")
      private String capability;
    }

    问题:要根据StaffDict中的某个属性查出Applications对应的list

    解决如下:

    List<Applications> appList = new ArrayList<>();
    String jpql = "SELECT app FROM AppVsStaff appVsStaff LEFT JOIN appVsStaff.applications app WHERE appVsStaff.staffDict.userName=:userName";
    appList = entityManager.createQuery(jpql).setParameter("userName", userName).getResultList();
  • 相关阅读:
    Object Modeling
    数据库的比较
    关系数据库与非关系数据库
    结构化查询语言-SQL
    SQLite
    acid (数据库事务正确执行的四个基本要素的缩写)
    UITableView设计思想 考察
    复杂软件的考虑点与UITableView
    设计模式与哲学
    复杂对象的组装与创建-建造者模式
  • 原文地址:https://www.cnblogs.com/ms-grf/p/7678073.html
Copyright © 2011-2022 走看看