作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我尝试运行以下代码时,出现 org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: safu.Publisher
异常:
public class SafuClient {
public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Publisher publisher = new Publisher("ABC", "ABC Co.");
Book book = new Book("1-932394-88-5", "Safu", publisher);
session.save(book);
session.getTransaction().commit();
}
}
我有一个从图书到出版商的多对一关系。图书和出版商实体如下:
@Entity
public class Book {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String isbn;
private String name;
@ManyToOne(cascade={CascadeType.PERSIST})
@JoinColumn(name="publisher_id")
private Publisher publisher;
public Book() {}
public Book(String isbn, String name, Publisher publisher) {
this.isbn = isbn;
this.name = name;
this.publisher = publisher;
}
}
@Entity
public class Publisher {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String code;
private String name;
public Publisher() {}
public Publisher(String code, String name) {
this.code = code;
this.name = name;
}
}
如果我在 Book
entity 一切正常。
有人可以解释为什么会这样吗?
最佳答案
尝试 session.persist(book);
这可以解决问题而不是 session.save(book);
关于hibernate - 单向 ManyToOne : Why transient instance saved with CascadeType. ALL 但不是 CascadeType.PERSIST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23521039/
我是一名优秀的程序员,十分优秀!