0
我正在嘗試使用Hibernate標準來選擇使用多對多關係中的表。 n-m表有一些額外的列,而不僅僅是每個表的id。休眠標準 - 多對多關係
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<User> criteria = builder.createQuery(Fornecedor.class);
Root<User> root = criteria.from(User.class);
criteria.select(root);
root.fetch("userRolesList");
List<User> users = em.createQuery(criteria).getResultList();
在用戶類中我有userRolesList(n-m表),它具有角色。所以我有User - > UserRoles - > Role。當我嘗試打印用戶角色,例如,休眠拋出org.hibernate.LazyInitializationException導致角色哪裏都不牽強每個屬性映射爲FetchType.LAZY
。
當我更改代碼下面的一個。
代碼:
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<User> criteria = builder.createQuery(Fornecedor.class);
Root<User> root = criteria.from(User.class);
criteria.select(root);
root.fetch("userRolesList");
root.fetch("userRolesList.role");
List<User> users = em.createQuery(criteria).getResultList();
然後我得到:
java.lang.IllegalArgumentException異常:找不到屬性與 在這個ManagedType給定的名稱[userRolesList.role] [網友]
我已經tryed很多選項像加入的情況,但仍然無法使其工作。
完美!我錯過了「內心深處」。我正在嘗試從根目錄獲取這兩個文件。完善!謝謝! – lfdajr