如何在 Hibernate 中模拟 "ON UPDATE NO ACTION"
How to simulate the "ON UPDATE NO ACTION" in Hibernate
我有以下DO
@Entity
@Table(schema = "USERCVT", name = "Table1")
public class DeviceMasterDO implements Serializable{
@OneToMany(cascade = CascadeType.ALL, mappedBy = "deviceMasterDO", orphanRemoval = true)
private List<InOutTransactionDO> inOutTransactionDOs;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "deviceMasterDO", orphanRemoval = true)
private List<AdminTransactionDO> adminTransactionDOs;
/*************MORE CODE**************/
}
当我尝试更新 DeviceMasterDO 时,它也在 InOutTransactionDO 和 AdminTransactionDO 中执行更新。我只想更新 DeviceMasterDO。我怎样才能做到这一点?
问题:
如果 DeviceMasterDO 的 InOutTransactionDO 和 AdminTransactionDO 都不为空,则更新工作正常并执行 -
Hibernate: update schema.Table1 set .....
Hibernate: update schema.Table2 set ....
Hibernate: update schema.Table3 set ...
如果 DeviceMasterDO 将 InOutTransactionDO 和 AdminTransactionDO 设为空,则更新失败 -
Hibernate: insert into usercvt.Table2 (a,b,c) values (?, ?, ?)
2016-06-14 17:51:44 ERROR SqlExceptionHelper:146 - [SQL0407] Null values not allowed in column or variable b.
请考虑删除以下内容:
cascade = CascadeType.ALL
请声明inOutTransactionDOs
如下:
@OneToMany(mappedBy = "deviceMasterDO", orphanRemoval = true)
private List<InOutTransactionDO> inOutTransactionDOs;
和adminTransactionDOs
如下:
@OneToMany(mappedBy = "deviceMasterDO", orphanRemoval = true)
private List<AdminTransactionDO> adminTransactionDOs;
我有以下DO
@Entity
@Table(schema = "USERCVT", name = "Table1")
public class DeviceMasterDO implements Serializable{
@OneToMany(cascade = CascadeType.ALL, mappedBy = "deviceMasterDO", orphanRemoval = true)
private List<InOutTransactionDO> inOutTransactionDOs;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "deviceMasterDO", orphanRemoval = true)
private List<AdminTransactionDO> adminTransactionDOs;
/*************MORE CODE**************/
}
当我尝试更新 DeviceMasterDO 时,它也在 InOutTransactionDO 和 AdminTransactionDO 中执行更新。我只想更新 DeviceMasterDO。我怎样才能做到这一点?
问题: 如果 DeviceMasterDO 的 InOutTransactionDO 和 AdminTransactionDO 都不为空,则更新工作正常并执行 -
Hibernate: update schema.Table1 set .....
Hibernate: update schema.Table2 set ....
Hibernate: update schema.Table3 set ...
如果 DeviceMasterDO 将 InOutTransactionDO 和 AdminTransactionDO 设为空,则更新失败 -
Hibernate: insert into usercvt.Table2 (a,b,c) values (?, ?, ?)
2016-06-14 17:51:44 ERROR SqlExceptionHelper:146 - [SQL0407] Null values not allowed in column or variable b.
请考虑删除以下内容:
cascade = CascadeType.ALL
请声明inOutTransactionDOs
如下:
@OneToMany(mappedBy = "deviceMasterDO", orphanRemoval = true)
private List<InOutTransactionDO> inOutTransactionDOs;
和adminTransactionDOs
如下:
@OneToMany(mappedBy = "deviceMasterDO", orphanRemoval = true)
private List<AdminTransactionDO> adminTransactionDOs;