有三张表:作者表,图书表,中间表
中间表实体类: private Integer id;
private Authors authors;
private Books books;
保存图书的时候要保存中间表:
authorisbnList = new ArrayList<Authorisbn>();
for(int i=0;i<aus.length;i++){
Authorisbn ab = new Authorisbn();
ab.setBooks(book);
Authors authors= new Authors();
authors.setId(Integer.parseInt(aus[i]));
ab.setAuthors(authors);
authorisbnList.add(ab);
} dao.saveOrUpdate(book);
if(book.getId()!=null){
dao.delById(Authorisbn.class, book.getId());
}
for(int i=0;i<authorisbnList.size();i++){
dao.saveOrUpdate(authorisbnList.get(i));
}
问题:book对象的主键是自动生成的id,ab.setBooks(book);时里边没有id,所以老提示id为空,该怎么解决?
中间表实体类: private Integer id;
private Authors authors;
private Books books;
保存图书的时候要保存中间表:
authorisbnList = new ArrayList<Authorisbn>();
for(int i=0;i<aus.length;i++){
Authorisbn ab = new Authorisbn();
ab.setBooks(book);
Authors authors= new Authors();
authors.setId(Integer.parseInt(aus[i]));
ab.setAuthors(authors);
authorisbnList.add(ab);
} dao.saveOrUpdate(book);
if(book.getId()!=null){
dao.delById(Authorisbn.class, book.getId());
}
for(int i=0;i<authorisbnList.size();i++){
dao.saveOrUpdate(authorisbnList.get(i));
}
问题:book对象的主键是自动生成的id,ab.setBooks(book);时里边没有id,所以老提示id为空,该怎么解决?
Books类里面应该没有id这个属性吧。
ab.setBooks(book);book这个变量是什么时候声明的?打个断点看看book里面有id没得。
另:既然一本书只对应一个作者,中间表用来干什么,直接在图书表中增加一个字段保存作者Id不就行了。
Books类里面应该没有id这个属性吧。
hibernate自动生成的实体类是有id的