我对此有疑问,但我不知道会发生什么。我的查询有错误吗?为何返回不同的查询?
标准:
Criteria cr = session.createCriteria(InventoryLocationAsset.class);
result = cr.list();
工作正常,但结果重复
HQL:
Query query = session.createQuery("FROM InventoryLocationAsset");
result = query.list();
线程中的异常" main" org.hibernate.ObjectNotFoundException:不存在具有给定标识符的行
标准:
Criteria cr = session.createCriteria(InventoryLocationAsset.class);
cr.fetchMode("asset", FetchMode.JOIN);
result = cr.list();
工作正常,但结果重复
HQL:
Query query = session.createQuery("FROM InventoryLocationAsset _ILA JOIN FETCH _ILA.asset");
result = query.list();
工作正常!! (没有重复的元素)
答案 0 :(得分:0)
您的错误出现在第一个HQL查询中:
Query query = session.createQuery("FROM InventoryLocationAsset");
result = query.list();
将成为:
Query query = session.createQuery("FROM " + InventoryLocationAsset.class.getName());
result = query.list();
通过这种方式,你可以把你班上的所有路径都放在一边。
关于重复的行:
您的InventoryLocationAsset
是其他的基类吗?如果是,请检查您的polimorphism
属性是否已设置(必须为explicit
)