繁体   English   中英

在Hibernate 5中,表的外键值不会自动更新

[英]Foreign key value of a table is not getting auto-updated in Hibernate 5

我有以下书籍和作者实体,作者与本书之间具有oneToMany关系

@Entity
@Table(name = "Author")
public class Author {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;

@OneToMany(mappedBy = "author", cascade = CascadeType.ALL)
private List<Book> bookList;

gettters/setters

}

@Entity
@Table(name = "Book")
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;

@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "authorId")
private Author author;

getters/setters
}

我的控制器

@PostMapping("/author")
public ResponseEntity<?> save(@RequestBody Author author) {
    long id = bookService.save(author);
    return ResponseEntity.ok().body("New Book has been saved with ID:" +id);
}

道课

@Override
public long save(Author author) {
    sessionFactory.getCurrentSession().save(author);
    return author.getId();
}

我正在使用以下输入来调用上述Web服务:

{
"name":"Herbert shilde",
"bookList":[{
    "title":"My Book"   
}]
}

在我的数据库中,作者表正在插入正确的数据,但书表未插入相应记录的外键。 如您在下图中所看到的,book表中的authorId为null。 我正在使用休眠5。

作者表

在此处输入图片说明

书桌

在此处输入图片说明

任何帮助,将不胜感激

更改

@JoinColumn(name = "authorId")

@JoinColumn(name = "authorId", referencedColumnName = "id")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM