是否只删除具有obj id的任何对象,还是首先引用其所有属性?
例如,假设我想用
删除TransactionRequest transactionRequest
tr1
id = 25, amount = 311, client_id = 13
首先确保检查所有这些属性,还是只删除ID为25的TransactionRequest
?
答案 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映射,你就不能删除你的对象