andere Nachteile in:
http://www.mkyong.com/hibernate/cascade-jpa-hibernate-annotation-common-mistake/
wo:
@OneToMany(fetch = FetchType.LAZY,
cascade = {CascadeType.PERSIST,CascadeType.MERGE },
mappedBy = "stock")
public Set<StockDailyRecord> getStockDailyRecords() {
return this.stockDailyRecords;
}
und dies nicht funktionieren:
stockDailyRecords.setStock(stock);
stock.getStockDailyRecords().add(stockDailyRecords);
session.save(stock);
session.getTransaction().commit();
als @OneToMany von JPA ist, erwartet sie eine Kaskade JPA - javax.persistence.CascadeType. Allerdings, wenn Sie es mit Hibernate Session speichern, wird org.hibernate.engine.Cascade die folgende Überprüfung tun ...
if (style.doCascade(action)) {
und speichern Prozess Hibernate eine ACTION_SAVE_UPDATE Aktion verursacht, aber die JPA eine ACTION_PERSIST und ACTION_MERGE passieren, es stimmt nicht überein und bewirkt, dass die Kaskade nicht ausgeführt werden konnte.
so seine mögliche Anmerkungen aus diesen Paketen zu mischen (javax.persistence & org.hibernate.annotations) withing eine @Entity – Schildmeijer
Sie kann jpa-Entitäten verwenden, wenn Sie mit Hibernate-Funktionen arbeiten möchten.Meiner Erfahrung nach können Sie jpa/hibernate nicht unter all Ihren Entitäten kombinieren. – dseibert