Я новичок в спящем режиме, и у меня возникла проблема при попытке объединить 2 таблицы с помощью спящего режима.То, что я пытаюсь сделать, это получить список товаров, которые есть у определенного магазина в зависимости от идентификатора магазина, но я получаю список всех доступных товаров в базе данных, перечисленных под каждым магазином.
Воткод для Product.java
:
@Entity
@Table (name = "products")
public class Product implements Serializable{
/**
*
*/
private static final long serialVersionUID = -1001086120280322279L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column (name = "product_id")
private int product_id;
@Column(name = "product_name", unique=true)
private String product_name;
@JoinColumn(name = "store", referencedColumnName="store_id")
@ManyToOne(cascade=CascadeType.ALL)
private Store store;
и т. д.
и вот код для Store.java
:
@Entity
@Table(name = "stores")
public class Store implements Serializable{
/**
*
*/
private static final long serialVersionUID = 4497252090404342019L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column (name = "store_id")
private int store_id;
@Column(name = "store_name", unique=true)
private String store_name;
@JoinColumn(name="store", referencedColumnName= "store_id")
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
private List<Product> productList;
и т. д.
Вот вывод: (продукты A должны быть под Butik A и продукты B под Butik B)
Butik: Butik A
Produkt: Banana A
Produkt: Morot A
Produkt: Banana B
Produkt: Apple B
Butik: Butik B
Produkt: Banana A
Produkt: Morot A
Produkt: Banana B
Produkt: Spple B
У меня есть 2 дополнительных класса, ProductDAO и StoreDAO, которые заботятся о запросе, код подобен воба класса, кроме имени таблицы / имени класса.
public class ProductDAO {
public static List<Product> getStoreProductsList() {
Session hibernateSession = HibernateUtil.getSession();
hibernateSession.beginTransaction();
Query query = hibernateSession.createQuery("from Product");
hibernateSession.getTransaction().commit();
List<Product> storeProducts = query.list();
return storeProducts;
}
}
Есть ли способ решить эту проблему только с помощью спящего режима?
Спасибо