以下是我的商店实体
@Entity
@Table(name="stores")
public class Stores {
@Id
@GeneratedValue
private Long id;
@Column(name ="incharge_id")
private Integer inchargeId;
@Column(name = "store_name")
private String storeName;
@OneToMany(mappedBy = "stores",
fetch = FetchType.LAZY,
cascade = CascadeType.ALL)
private Set<Items> items;
public Set<Items> getItems() {
return items;
}
public void setItems(Set<Items> items) {
this.items = items;
for (Items item : items) {
item.setStores(this);
}
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getInchargeId() {
return inchargeId;
}
public void setInchargeId(Integer inchargeId) {
this.inchargeId = inchargeId;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
}
下面是我的物品实体
package bt.gov.dit.inventoryservice.model;
import javax.persistence.*;
import java.util.Date;
@Entity
@Table(name = "items")
public class Items {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long Id;
@Column(name="item_name")
private String itemName;
@ManyToOne
private Categories categories;
@ManyToOne(fetch = FetchType.LAZY)
//@JoinColumn(name = "book_category_id", referencedColumnName = "id")
@JoinColumn(name = "stores_id", nullable = false,referencedColumnName = "id")
private Stores stores;
@Column(name="insert_date")
private Date insertDate;
@Column(name="update_date")
private Date updateDate;
public Long getId() {
return Id;
}
public void setId(Long id) {
Id = id;
}
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
public Categories getCategories() {
return categories;
}
public void setCategories(Categories categories) {
this.categories = categories;
}
public Stores getStores() {
return stores;
}
public void setStores(Stores stores) {
this.stores = stores;
stores.getItems().add(this);
}
public Date getInsertDate() {
return insertDate;
}
public void setInsertDate(Date insertDate) {
this.insertDate = insertDate;
}
public Date getUpdateDate() {
return updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
}
我之间存在一对多关系。一个商店可以有很多物品。但是我不知道如何在商店里插入物品。我尝试了默认保存的Jpa存储库,但是它代替了store_id(这是外键)保存了null。谁能告诉我如何实施该服务?
将会是下面的样子。
Stores stores = new Stores();
stores.setStoreName("store name");
// Set other fields of store entity
Item item1 = new Item();
item1.setItemName("item name 1");
// Set other fields of item entity
Item item2 = new Item();
item2.setItemName("item name 2");
// Set other fields of item entity
// Call setItems
// Call getItems in a Set class object like Set<Item> items;
stores.setItems(items);
storesService.save(stores); // it will save all items with foreign key.