我正在使用Spring JPA查询一个JPA对象列表(例如B),该对象与另一个对象(例如a)有关系,并使用惰性提取。JPQL基于惰性加载的对象进行筛选时抛出一个异常
由:org.hibernate.lazyInitializationException引起:无法初始化代理-没有会话异常。
如何解决这个问题?
我尝试使用join
、fetch
、left join
和@entitygraph
属性。我得不到预期的结果。
@Entity
public class B {
...
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "A_Id", referencedColumnName="id", nullable = false)
private Parent parent;
...
}
public interface BRepository extends PagingAndSortingRepository<B, Integer> {
...
@Query("SELECT b FROM B b join fetch b.parent p where p.id = :parentId")
List<B> findBsByParent(@Param("parentId") int parentId);
...
}
@Service
public class MyService {
@Autowired
private BRepository bRepository;
public void workFunc(int parentId) {
List<B> bList = bRepository.findBsByParent(parentId);
...
// do certain ops with bList and other stuff too
...
}
}
我希望findBsByParent方法应该返回所有给出ParentID的B。不幸的是,我不能在这里使用本机查询
。
在应用程序.properties
文件中添加以下属性:
hibernate.enable_lazy_load_no_trans = true
问题内容: 我有2台物理服务器,我的Web应用程序命中该服务器由负载均衡器管理。我总是得到- org.hibernate.LazyInitializationException:无法初始化代理-没有会话 当其中一台服务器受到攻击而另一台服务器运行平稳而没有任何问题时。我有一个由应用程序启用和管理的本地托管缓存存储。仅当尝试从一个表访问一个特定的列时,才会发生此异常。不管选择哪个服务器,其余的操作都
问题内容: 我试图从数据库中的对象进行简单加载,但出现错误“无法初始化代理-没有会话”,知道吗?谢谢 问题答案: 尝试添加到validate方法: 发生的事情是,因为没有注释,所以没有与该方法关联的会话,并且每个查询都将在其自己的会话中运行,该会话随后将立即关闭。 该方法始终返回一个代理,与之不同(请参阅此处,了解load与get之间的差异)。 因此,返回了代理,但是由于缺少代理,因此立即关闭了创
我试图从DB中的一个对象做一个简单的加载,但是我得到的错误是“Could not initialize proxy-no session”,有什么想法吗?谢谢
我正在尝试使用Primeface JSF Spring Boot做一个示例User CRUD页面。在页面上,我有一个启用LazyLoding的表。我的User对象没有1对N或N对1字段,都是原始字段,在到达时不需要数据库访问或初始化。(所以FetchType.EAGER不会有帮助) 当试图在弹出窗口上显示用户列表中的用户时,出现以下异常: 为什么 JSF 组件尝试从数据库中更新对象以获取 1 比
问题内容: 对数据库有以下查询: 在获取employee.address.street,employee.address.houseNumber或employee.address.city时,它将失败,但以下情况除外: 员工映射: 地址映射: 对于其他类(办公室,公司等),这是绝对正常的。如果注释,则在jsp应用程序中加载地址字段的行将正常工作。怎么了?顺便说一下,尽管有异常,它仍显示有关js
抱歉,如果我的帖子是重复的,但我不能从另一个主题解决我的问题,所以我创建了这个主题。希望有人帮助我。我用的是Hibernate,JSF和Glassfish。 这是我的完整代码 CusterBean(请求范围) 顾客道 xhtml 我得到这个错误: SEVERE:javax.el.ELException: /admin/customer_list.xhtml@68,106 value="#{cust
问题内容: 我得到以下异常: 当我尝试从以下几行拨打电话时: 我首先实现了这样的方法: 并得到了例外。然后一位朋友建议我始终测试该会话并获取当前会话,以避免出现此错误。所以我这样做: 但仍然会出现相同的错误。我已经阅读了很多有关此错误的内容,并找到了一些可能的解决方案。其中之一是将lazyLoad设置为false,但是不允许这样做,因此建议我控制会话 问题答案: 这是错误的,因为您在提交事务时将会
我得到以下例外情况: 当我尝试从main调用以下线路时: