Hibernate如何删除(obj)一个对象?

时间:2016-12-29 13:15:29

标签: hibernate

是否只删除具有obj id的任何对象,还是首先引用其所有属性?

例如,假设我想用

删除TransactionRequest transactionRequest tr1
id = 25, amount = 311, client_id = 13

首先确保检查所有这些属性,还是只删除ID为25的TransactionRequest

1 个答案:

答案 0 :(得分:0)

只有您知道才能删除对象的条件。

如果您的id字段已足够,则可以继续,如果您想扩展您的条件(在其他字段中可以使用金额和client_id,您可以这样做)。

要删除对象,您可以采用两种方式(我以TransactionRequest对象为例):

第一个:

通过查询获取对象并将其删除:

Query q = session.createQuery("select from TransactionRequest t where t.id = :yourParam");
q.setString("yourParam, "25");
TransactionRequest toDelete = (TransactionRequest)q.uniqueResult();
session.delete(toDelete);

第二个:

写一个删除查询

Query q = session.createQuery("delete from TransactionRequest where id = :yourParam");
q.setString("yourParam, "25");
q.executeUpdate();

两种方式的区别:

如果您使用第一种方式,您将保证删除您的对象和使用cascade子句映射的数据集

如果你使用第二种方法,如果你的对象中有一个set / list / bag映射,你就不能删除你的对象