代码之家  ›  专栏  ›  技术社区  ›  Atul

多个JPA选择查询

  •  0
  • Atul  · 技术社区  · 7 年前

    我有以下实体 @ManyToMany 两者之间的映射。

    @Entity
    @Table(name = "user")
    public class User implements java.io.Serializable {
    
        /**
         * 
         */
        private static final long serialVersionUID = 5340562707217344212L;  
        @Id 
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long userId;
        private String userName;
        private String password;
        private String firstName;
        private String lastName;
        private String emailId;
        private Date createdDate;
        private Byte status;
        private Date lastModifiedDate;  
        @ManyToMany
        @JoinTable(name = "user_products_mapper",
                   joinColumns = @JoinColumn(name = "user_id"),
                   inverseJoinColumns = @JoinColumn(name = "product_id")
        )
        private List<Products> products = new ArrayList<Products>();
    
        public void addProducts(Products product){
    
            this.products.add(product);     
        }
    
    
    @Entity
    @Table(name="products")
    public class Products implements java.io.Serializable {
    
        /**
         * 
         */
        private static final long serialVersionUID = 1895580713896126954L;
        @Id 
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long productId;
        private String productName;
        private String description;
        private double minBalance;
    
    
        public Long getProductId() {
            return this.productId;
        }
    
        public void setProductId(Long productId) {
            this.productId = productId;
        }
    
        public String getProductName() {
            return this.productName;
        }
    
        public void setProductName(String productName) {
            this.productName = productName;
        }
    

    我的问题是:

    1)如何根据 user id ?是指选择所订购的所有产品 用户ID ?

    2)我在这上面挣扎,因为我没有任何映射 Product 侧向而上 User 一边。这是一个 unidirectional association

    3)我将如何穿越 Products 通过 User entity ?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Angad Bansode    7 年前

    试试这个。我相信这应该管用。

    String hql = "select u.products from User u where u.id =:uid";
        List<Object> products = sf.getCurrentSession().createQuery(hql)
                                 .setParameter("uid", user_id)
                                    .list();
        System.out.println("products  are :: " + products );