我在stackoverflow上读了很多关于相同异常的文章,但没有找到任何实际帮助我的东西,所以我在这里:
@Entity
@Table(name="teachers")
public class Teacher extends Model{
public Teacher()
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
@OneToMany(fetch=FetchType.LAZY, mappedBy="teacher")
private List<Student> students;
//getter and setter
}
@Entity
@Table(name="students")
public class Student extends Model{
public Student(){}
public Student(Teacher teacher){this.teacher = teacher;}
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
@ManyToOne(fetch=FetchType.LAZY, cascade={CascadeType.ALL})
@JoinColumn(name="teacher_id")
private Teacher teacher;
//getter and setter
}
public abstract class Model implements Serializable {
public void save() {
EntityManager entityManager = HibernateUtil.getEntityManagerFactory().createEntityManager();
entityManager.getTransaction().begin();
entityManager.persist(this);
entityManager.getTransaction().commit();
entityManager.close();
}
public void merge(){
EntityManager entityManager = HibernateUtil.getEntityManagerFactory().createEntityManager();
entityManager.getTransaction().begin();
entityManager.merge(this);
entityManager.getTransaction().commit();
entityManager.close();
}
}
public class TestClass{
Teacher teacher;
teacher = new Teacher();
Student student_1;
Student student_2;
student_1 = new Student(teacher);
student_1.save();
student_2 = new Student(teacher);
student_2.save();
}
Cascade的工作方式与你想象的不同。它在相关对象上调用相同的函数。因此,如果调用em.persist(student),它将调用persist on teacher。
我想你可能不想把任何东西从学生身上层层递送到老师身上。如果您在一个事务中持久化教师,然后只将其链接到其他事务中的学生,那么您就没有向教师级联任何内容。
另外,我有一个IOC托管bean,它内部有一个事务方法。 有2个实体具有单向Many2One-- AuModule在上没有引用
我在尝试使用Spring Data JPA和Hibernate作为JPA提供程序执行批插入操作时遇到了问题。 我有以下方法在我的服务。这就是抛出异常的地方。 Institute是一个实例变量,并提前获取。 我还将实体设置为级联、持久和合并。 为什么这段代码起作用 而此代码不
我得到了“分离的实体传递到持久”,但我不明白,该对象如何能够处于分离状态。 这里首先是一些上下文。 每个用户和角色有两个: 实体--除了名称之外--有几个不应与此问题相关的字段,外字段角色来自其基类: 在应用程序启动时,我希望确保此ApplicationRunner中存在管理员用户: 应用程序在启动时抛出异常并关闭: 我在这里的理解是,在从存储库中检索到之后就处于分离状态。 为何超脱?我假设方法上
我有一段很长的JPA+Hibernate代码,它试图在循环中将大量记录插入到DB中。 更奇怪的是,我可以用下面的代码在一次迭代中再现错误。“分离的实体...”第二次刷新时抛出错误。那么这是否意味着第一次同花顺是一个无操作?
我有两个模型,一个用于存储用户详细信息,使用该Id,我试图将用户位置保存在另一个表中,该表使用用户的相同Id作为主键。 为什么我会出现这个错误?坚持是什么意思?我正在使用MySQL数据库(&I)
当试图在web应用程序上创建课程实体实例时,我们遇到以下错误。这是一个JHipster应用程序完整的错误日志,下面是,但主要错误是 更新的代码: