Hibernate单向一对多注解配置以及保存问题 30
实体1:StudentstuIdstuName实体2:BookbookIdbookName如上,有两个实体,一个学生对应多本书,删除一个书本不会对学生对象有影响,当作是单...
实体1:StudentstuId stuName
实体2:BookbookId bookName
如上,有两个实体,一个学生对应多本书,删除一个书本不会对学生对象有影响,当作是单向的一对多。
这两个实体,用Hibernate注解怎么配置?@OneToMany(Student)和@ManyToOne(Book)都写什么?
还有就是想做配置注解的时候生成一个中间关系表(TB_STUDENT_BOOK)来维护他俩关系,当保存Book的时候,就会自动在关系表TB_STUDENT_BOOK里面自动添加那两个实体对象的ID,求大神告诉怎么做。先看一个例子,大神告诉我怎么改。
学生类
public class Student{
private String stuId;
private String stuName;
@LazyCollection(LazyCollectionOption.FALSE)
@ManyToMany()
@JoinTable(name = "TB_STUDENT_BOOK", joinColumns = @JoinColumn(name = "STU_ID"), inverseJoinColumns = @JoinColumn(name = "BOOK_ID"))
private List<Book> books;
//省略getter和setter
}
书本类
public class Book{
private String bookId;
private String bookName;
@ManyToMany(mappedBy = "books")
private Student student;
// 省略getter和setter
}
我这样配置好像不对呃。 当我把student对象set到book中的时候,保存book时候不会自动将两个的ID添加到TB_STUDENT_BOOK里面,报错了,说是试图把不存在的book的id插入tb_student_book中,调试的时候确实发现没有先保存到BOOK中,而是直接先保存TB_STUDENT_BOOK了,所以有这个错误,求大神指教怎么改这个注解。。 展开
实体2:BookbookId bookName
如上,有两个实体,一个学生对应多本书,删除一个书本不会对学生对象有影响,当作是单向的一对多。
这两个实体,用Hibernate注解怎么配置?@OneToMany(Student)和@ManyToOne(Book)都写什么?
还有就是想做配置注解的时候生成一个中间关系表(TB_STUDENT_BOOK)来维护他俩关系,当保存Book的时候,就会自动在关系表TB_STUDENT_BOOK里面自动添加那两个实体对象的ID,求大神告诉怎么做。先看一个例子,大神告诉我怎么改。
学生类
public class Student{
private String stuId;
private String stuName;
@LazyCollection(LazyCollectionOption.FALSE)
@ManyToMany()
@JoinTable(name = "TB_STUDENT_BOOK", joinColumns = @JoinColumn(name = "STU_ID"), inverseJoinColumns = @JoinColumn(name = "BOOK_ID"))
private List<Book> books;
//省略getter和setter
}
书本类
public class Book{
private String bookId;
private String bookName;
@ManyToMany(mappedBy = "books")
private Student student;
// 省略getter和setter
}
我这样配置好像不对呃。 当我把student对象set到book中的时候,保存book时候不会自动将两个的ID添加到TB_STUDENT_BOOK里面,报错了,说是试图把不存在的book的id插入tb_student_book中,调试的时候确实发现没有先保存到BOOK中,而是直接先保存TB_STUDENT_BOOK了,所以有这个错误,求大神指教怎么改这个注解。。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询