- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我得到以下异常:
org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
我使用的bean是:
@Entity
@Table(name="user")
public class User implements Serializable {
/**
*
*/
private static final long serialVersionUID = -5689970869179555442L;
@Id
@Column(name="username")
/*@NotNull*/
private String username;
@Column(name="password")
private String password;
@Column(name="email")
/*@Email*/
private String email;
@LazyCollection(LazyCollectionOption.FALSE)
@ManyToMany
@JoinTable(name="user_follower",joinColumns={@JoinColumn(name="username")},
inverseJoinColumns={@JoinColumn(name="follower")})
private List<User> followers = new ArrayList<User>(0);
/*@LazyCollection(LazyCollectionOption.FALSE)*/
@OneToMany(fetch=FetchType.EAGER)
@JoinTable(name="user_message",joinColumns={@JoinColumn(name="username")},
inverseJoinColumns={@JoinColumn(name="message_date")})
@OrderBy(value="messageDate")
private List<Message> messages = new ArrayList<Message>(0);
public User() {
}
在dao中我有以下代码:
public void followUser(String userToFollow, String username) {
System.out.println("repository invoked");
session=sessionFactory.getCurrentSession();
User user=retrieveUser(username);
@SuppressWarnings("unchecked")
List<User> followers=session.createCriteria(User.class).setFetchMode("followers", FetchMode.JOIN)
.add(Restrictions.eq("username", username)).list();
for(User follower: followers){
if(follower.getUsername().equals(userToFollow)){
//do nothing
}else{
followers.add(retrieveUser(userToFollow));
user.setUserFollowers(followers);
}
}
session.saveOrUpdate(user);
}
我不知道该怎么做才能防止这种异常
最佳答案
我有类似的问题,我通过将 List 更改为 Set 来解决它。我认为 Hibernate 不需要关心 ORDER BY(只是猜测)。
关于hibernate - 如何防止出现 org.hibernate.loader.MultipleBagFetchException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6909796/
我想在我的存储库层中有一个选项来预加载实体,所以我尝试添加一个方法来预加载具有所有关系的问题实体,但它会抛出 MultipleBagFetchException。我怎样才能解决这个问题?我正在使用 H
我们有一个 Lesson 实体,每个 Lesson 都有参加类(class)的学生和客人的列表: public class Lesson { @Id private Long id;
我们有一个 Lesson 实体,每个 Lesson 都有参加类(class)的学生和客人的列表: public class Lesson { @Id private Long id;
Hibernate 在创建 SessionFactory 期间抛出此异常: org.hibernate.loader.MultipleBagFetchException: can
我得到以下异常: org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags 我
org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.loader.MultipleBagFetchExc
实体类 客户 @Entity @Table(name="Custumer") public class Custumer implements Seria
我有用户实体: @ToString @Data @Entity @Table(name = "users") @NamedEntityGraph(name = "UserWithItems",
我需要配置 spring + JPA (EntityManager) + Hibernate 。 如果我必须 fetch = FetchType.LAZY 运行服务器成功 如果我必须 fetch =
我正在将 WildFly 版本从 8.1 (Hibernate 4.3.5) 迁移到 11.0 (Hibernate 5.1.10),现在出现一个新错误: 引起:org.hibernate.loade
此错误不允许我访问 jsondoc,我已经尝试了此处提供的一些解决方案,但仍然遇到同样的问题。 我希望我已经足够清楚我想要你帮助我的事情。 我留下了错误以及错误中提到的类之一。 Cause
以下是我的代码在这里,我使用多个列表从数据库中获取数据。从 hql 查询中获取数据时显示异常。 Pojo 类 public class BillDetails implements java.io.S
我正在努力将应用程序从 Tomcat 8 迁移到 Weblogic 10.3.6。我们正在使用的技术堆栈: Spring :4.1.5.发布 hibernate :4.3.5 数据库:Postgres
我们有一个项目需要延迟加载实体的集合,但在某些情况下我们需要急切加载它们。我们为我们的实体添加了一个 @NamedEntityGraph 注释。在我们的存储库方法中,我们添加了一个“javax.per
我是一名优秀的程序员,十分优秀!