我的問題:爲什麼@OneToMany批註不工作
我想存儲STORE_ID和BOOK_ID庫存表,但爲什麼不STORE_ID店在庫存表?我是JPA中的新成員,請向我建議我爲存儲STORE_ID在INVENTORY表中做什麼。
1.Book
@Entity
@Table(name="book")
public class Book implements Serializable {
@Id
@Column(name="book_id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
private String isbn;
private String title;
private Date publishedOn;
private Double price;
private int version = -1;
@OneToOne(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="book")
Inventory inventoryRecords = new Inventory();
2.Inventory
@Entity
@Table(name="inventory")
public class Inventory implements Serializable {
/**
*
*/
@Id
@Column(name="INVENTORY_ID")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@OneToOne
@JoinColumn(name="book_id")
private Book book;
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="STORE_ID")
private Set<Store> stores = new HashSet<Store>();
private Integer quantity;
3.Store
@Entity
@Table(name="store")
public class Store implements Serializable {
@Id
@Column(name="STORE_ID")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@Column(name="NickName")
private String nickName;
4.In Main
Book b = new Book();
b.setTitle("abc");
b.setIsbn("abc");
Inventory i = new Inventory();
i.setBook(b);
b.setInventoryRecords(i);
Store s = new Store();
s.setNickName("yyynn6");
i.getStores().add(s);
entitymanager.persist(b);
OUTPUT=
Hibernate: insert into book (isbn, price, publishedOn, title, version) values (?, ?, ?, ?, ?)
Hibernate: insert into inventory (book_id, quantity) values (?, ?)
Hibernate: insert into store (NickName) values (?)
感謝您的建議,但您的建議不適用於我的情況,我有三類書籍,庫存和商店。我僅persist Book,以便時間將所有數據與相應的表+庫存表與Book_ID和Store_ID一起存儲。我試過@manyToOne在Store Class中映射但不起作用 – prashant