@Override
@Transactional
public Product getProductById(int id) {
return productDao.getProductById(id);
}
@Override
public Product getProductById(int id) {
Product p = sessionFactory.getCurrentSession().load(Product.class, id);
System.out.print(p);
return p;
}
@Override
public Product getProductById(int id) {
return sessionFactory.getCurrentSession().load(Product.class, id);
}
我得到org.hibernate.lazyInitializationException:无法初始化代理-没有会话。异常发生在我刚刚打印产品的视图层。我不明白为什么在dao方法中以同一行返回会在视图层中导致异常,但如果我将其保存在引用中,然后返回该引用,就可以正常工作。
这里有一个很好的参考,可以让您熟悉。get()和。load()方法是如何工作的。
@Override
public Product getProductById(int id) {
Product p = sessionFactory.getCurrentSession().load(Product.class, id);
return p;
}
session.load()
默认情况下返回代理对象而不访问数据库。如果表上没有任何记录,它基本上返回noObjectFounderRor
,否则它将返回一个引用,而不填充实际的对象,甚至不访问数据库。上面的方法返回一个代理,因为它还必须初始化您的对象,所以会话保持打开,对象被填充。
@Override
public Product getProductById(int id) {
return sessionFactory.getCurrentSession().load(Product.class, id);
}
但是在第二个方法中,基本上是在没有任何初始化的情况下返回代理。此后会话被关闭,没有任何先前的使用。这样你就得到了错误。
问题内容: 我通过服务将dao称为 在岛上,我得到的产品 运行正常,但如果我将dao类更改为 我得到org.hibernate.LazyInitializationException:无法初始化代理- 没有会话。例外发生在我只是在打印产品的视图层中。我不明白为什么在dao方法中在同一行中返回会导致视图层出现异常,但是如果将其保存在引用中然后返回它,效果很好。 问题答案: 这是一个很好的参考,可让您
我知道我的问题很奇怪,很难理解 我为我的项目创建了一些结构。但每次我都会遇到不同的问题,如<code>无法初始化代理-再次没有会话</code>或<code>不可序列化异常</code>等 我想得到一些建议或帮助。我尝试使用注释< code>transactional,但不知道在哪种情况下应该使用< code > implements Serializable 。当然,我知道如果我想在视图范围内使
堆栈跟踪 applicationContext.xml application-security.xml mvc-config.xml web.xml
我有一个LazyInitializationException问题,我不知道如何解决它。 之前的问题是我打电话的时候。getperson=null,但我修复了findProjectEmployeesWithinDates请求获取此人的调用。但当我调用“findProjectEmployeesWithinDates”时,我遇到了一个例外。查找项目员工的代码包括: 所以用debbug我看到: 它位于f
我使用< code>spring-data-jpa与< code > spring-boot(v 2 . 0 . 0 . release),我刚刚在MySQL上写了一个CRUD演示,但是在运行时出现异常,源代码如下: 源码 User.java UserRepository.java 用户服务测试.java 应用程序.yml 例外详细信息 我尝试另一种方法,它可以成功运行。
问题内容: 我的代码检索与用户有关的所有信息: 在简单地返回一组用户的ES。 我的问题是:即使会话已经关闭,为什么对象仍然具有其值(例如名称)?是该类的实例变量。但是为什么我不能检索其值却可以检索该类的常规实例变量? 是一个。 问题答案: 有关使用惰性关联的hibernate文档清楚地将这种访问称为错误。只有在会话仍处于打开状态时,才能与延迟关联的对象进行交互。文档的该部分还提供了访问对象的延迟关
问题内容: 在我的spring项目的自定义AuthenticationProvider中,我正在尝试读取已记录用户的权限列表,但是遇到以下错误: 从StackOverflow的此处阅读其他主题,我理解这种情况的发生是由于框架处理此类属性的方式引起的,但是我无法为我的情况找到任何解决方案。有人可以指出我做错了什么,我该怎么做才能解决? 我的Custom AuthenticationProvider的
注意:关于我如何解决这个问题的例子,请看我自己对这个问题的回答。 我在我的Spring MVC 4 Hibernate 4项目中遇到以下异常: org . hibernate . lazyinitializationexception:无法延迟初始化角色集合:com . my site . company . acknowledges,无法初始化代理-无会话 看了很多关于这个问题的其他问题,我明白