[英]how to mapping an OneToMany relation with Weak Entity in Hibernate
我需要在休眠狀態下使用JPA注釋映射一個OneToMany關系,其中涉及一個弱實體。
例如
表訂單:
CREATE TABLE orders(
idorder serial NOT NULL,
note varchar(30),
CONSTRAINT orders_pkey PRIMARY KEY (idorder)
)
表OrderItems:
CREATE TABLE orderitems(
idorder integer NOT NULL,
iditem serial NOT NULL,
qnt integer,
CONSTRAINT orderitems_pk PRIMARY KEY (idorder, iditem),
CONSTRAINT fk_orderitems FOREIGN KEY (idorder)
REFERENCES orders (idorder) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
在我的“訂單”類中,我已經通過以下方式實現了getOrderItem()方法:
// i need cascadeType.All here
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "order")
public Set<OrderItem> getOrderItems() {
return items;
}
現在,在插入之前無法知道將分配給新訂單的標識符,例如我可以在OrderItem類中使用注解以便自動(以層疊模式)提交正確的idOrder?
我的目標是要得到這樣的情況。
Order myOrder = new Order();
// myOrder.setId(1) not necessary
myOrder.setNote("orderNote");
OrderItem firstItem = new OrderItem();
// firstItem.setIdOrder() no need to specify idorder
// firstItem.setId(12);
firstItem.setName("firstItem");
firstItem.setQnt(2);
OrderItem secondItem = new OrderItem();
// secondItem.setId(13);
secondItem.setName("secondItem");
secondItem.setQnt(4);
Set<OrderItem> items = new HashSet<OrderItem>();
items.add(firstItem);
items.add(secondItem);
myOrder.setItems(items);
OrderDAO dao = new OrderDAO();
dao.save(myOrder); // i want inser all items in cascade with the idOder assigned to "myOrder"
好的,我將嘗試添加以上給定場景所需的實體類。
@Entity
@Table(name="orders")
public class Order{
@Id
@GeneratedValue
@Column(name="ID")
private Long id;
@Column(name="note ")
private String note ;
@OneToMany(mappedBy="orders")
private Set<OrderItem> orderitems;
// Getter and Setter methods
}
然后是OrderItem類
@Entity
@Table(name="OrderItems")
public class OrderItem{
@Id
@Column(name="iditem")
private Long iditem;
@Column(name="qnt")
private long qnt ;
@ManyToOne
@JoinColumn(name="idorder")
private Order order;
public OrderItem() {
}
// Getter and Setter methods
}
此外,我不力讓這列您的setName映射到..和iditem心不是生成的值分配給它的ID類型好吧那么它也可能是有關反問題,即誰可能是關系owener ..逆=真正的是屬性的mappedBy使用這樣相同的行為嘗試更改它。.讓我知道這是否可行,或者在嘗試時遇到問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.