2009-07-29 52 views
7

如果是這樣,語法是什麼?是否可以從與HQL的多對多關聯中批量刪除?

假設我想富的一個實例是從酒吧的所有實例非關聯: 在SQL它只會是:

delete from FOO_BAR_MAPPING 
where FOO_ID = ? 

在HQL,我以爲這會是這樣的:

delete from Bar.foos foos 
where foos.id = :id 

(其中FOOS是美孚的映射集合)

,但似乎是錯誤的,贈送:

org.hibernate.hql.ast.QuerySyntaxException: Bar.foos is not mapped 

這對HQL甚至可能嗎?

回答

1

HQL無法單獨去除關聯。但是,您可以執行的操作是:

A)假設您正在爲單個Foo進行設置,並且級聯設置適當,則可以加載Foo實例,清除bars的集合並將其保存。

B)如果你想清除多個barsFoos你可以映射一個SQL查詢,而不是HQL