ManyToMany JPA Выбрать запрос - PullRequest
       1

ManyToMany JPA Выбрать запрос

0 голосов
/ 20 сентября 2018

У меня ниже сущности и @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?Означает выбрать все продукты, на которые подписан данный user id?

2) Я борюсь с этим, поскольку у меня нет сопоставлений на стороне Product, но на стороне User.Это unidirectional association

3) Как мне пройти через Products через User entity?

1 Ответ

0 голосов
/ 20 сентября 2018

Попробуйте это.Я считаю, что это должно работать.

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 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...