Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何删除绑定表中的数据?_Java_Hibernate - Fatal编程技术网

Java 如何删除绑定表中的数据?

Java 如何删除绑定表中的数据?,java,hibernate,Java,Hibernate,我有三个表:A,B和AB。A和B是典型的表,AB-表绑定它们。例如: A table _____________________ int id | varchar data 1 hello B table _____________________ int id | varchar data 1 world AB table ___________________ int a_id | int b_id 1 1 A和B有多对多关系。有时我应该从表

我有三个表:A,B和AB。A和B是典型的表,AB-表绑定它们。例如:

A table
_____________________
int id | varchar data
1       hello


B table
_____________________
int id | varchar data
1       world


AB table
___________________
int a_id | int b_id
1         1
A和B有多对多关系。有时我应该从表中删除记录。从AB中删除绑定记录也很好。但是我怎么能做到呢?这是我的努力:

@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinTable(name = "ab", catalog = "mycatalog", joinColumns = { @JoinColumn(name = "a_id", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "b_id", nullable = false, updatable = false) })
    private Set<B> bs= new HashSet<B>(0);
摘自:

删除级联

cascade=“delete”在“stockDailyRecords”中声明,以启用删除级联效应。删除“Stock”时,其所有引用“stockDailyRecords”将自动删除

<!-- Stock.hbm.xml -->
<set name="stockDailyRecords" cascade="delete" table="stock_daily_record" ...>
      <key>
            <column name="STOCK_ID" not-null="true" />
      </key>
      <one-to-many class="com.mkyong.common.StockDailyRecord" />
</set>
输出:

Hibernate: 
    delete from mkyong.stock_daily_record 
    where DAILY_RECORD_ID=?

Hibernate: 
    delete from mkyong.stock 
    where STOCK_ID=?
Query q = session.createQuery("from Stock where stockCode = :stockCode ");
q.setParameter("stockCode", "4715");
Stock stock = (Stock)q.list().get(0);
session.delete(stock);
Hibernate: 
    delete from mkyong.stock_daily_record 
    where DAILY_RECORD_ID=?

Hibernate: 
    delete from mkyong.stock 
    where STOCK_ID=?