,则无法删除对象
它只是删除具有OBJ的ID的任何对象,还是首先引用其所有属性?
例如,说我想用
删除TransactionRequest transactionRequest
tr1 id = 25, amount = 311, client_id = 13
它首先确保所有这些属性都要签出,还是只删除TransactionRequest
的ID为25?
关于删除对象只知道的条件。
如果您足够了id
字段,则可以继续进行,如果您想扩展条件(以其他字段为金额和客户端_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子句映射的数据集
如果使用第二种方式,则如果您的对象中有设置/列表/袋映射