2011-05-05 54 views
1

您好我想知道我可以手動更改默認的sql命令來刪除nhibernate映射文件中的對象。 我想同時使用sevral刪除命令,所有使用的id,我將如何去呢?NHibernate映射更改對象刪除命令

+1

你有沒有考慮使用級聯刪除?或者,您是否嘗試從NH未映射的表中刪除? – dotjoe 2011-05-05 15:47:15

回答

1

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/querysql.html#querysql-cud

Hibernate3能夠使用創建,更新和刪除操作的自定義的SQL語句。 Hibernate中的類和集合持久化程序已經包含一組配置時間生成的字符串(insertsql,deletesql,updatesql等)。映射標籤<的SQL插入>,< SQL-刪除>和< SQL更新>覆蓋這些字符串:

<class name="Person"> 
    <id name="id"> 
     <generator class="increment"/> 
    </id> 
    <property name="name" not-null="true"/> 
    <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete> 
</class> 
+0

'?'是什麼意思?代表,它是否始終是id?它是按屬性順序排列的......我想同時使用sevral刪除命令,所有這些都使用id,我將如何去做。 – HeWhoSleepPrograms 2011-05-05 09:49:23

+0

對不起,你已經暴露了我的NHibernate知識的(短)限制:)也許有人可以通過添加解釋來獲得這個答案。 – 2011-05-05 09:56:52

+0

'?'是參數佔位符。我相信第一個將始終是sql-delete元素的對象的id屬性。 – dotjoe 2011-05-05 15:50:35