Otro de los contras en:
http://www.mkyong.com/hibernate/cascade-jpa-hibernate-annotation-common-mistake/
donde:
@OneToMany(fetch = FetchType.LAZY,
cascade = {CascadeType.PERSIST,CascadeType.MERGE },
mappedBy = "stock")
public Set<StockDailyRecord> getStockDailyRecords() {
return this.stockDailyRecords;
}
y esto no funciona:
stockDailyRecords.setStock(stock);
stock.getStockDailyRecords().add(stockDailyRecords);
session.save(stock);
session.getTransaction().commit();
como @OneToMany es de APP, se espera una cascada JPA - javax.persistence.CascadeType. Sin embargo cuando se guarda con la sesión de Hibernate, org.hibernate.engine.Cascade hará lo siguiente comprobación ...
if (style.doCascade(action)) {
e Hibernate Guardar proceso que causa una acción ACTION_SAVE_UPDATE, pero la APP pasará un ACTION_PERSIST y ACTION_MERGE, se no coincidirá y hará que la cascada no se ejecute.
por lo que su posible mezclar las anotaciones de estos paquetes (javax.persistence y org.hibernate.annotations) withing un @Entity – Schildmeijer
se puede usar entidades jpa cuando desee trabajar con funciones de hibernación.en mi experiencia, no puedes mezclar jpa/hibernate entre todas tus entidades. – dseibert