0

ユーザーがボタンを押したときにテーブル内のアイテムを削除する次のクエリがあります

  String hqery = "DELETE FROM Person WHERE automobile = " selected_id;
  Query q = hbsession.createQuery(hquery);
  q.executeUpdate();

Person クラスの変数は次のとおりです。

int id;
String name;
int age;
Cars automobile;

Cars クラスの変数は次のとおりです。

int id;
String Manufacturer
String Model;
int Year;

問題は、automobile が Bean クラス Cars のインスタンスであることです。クエリを使用してクラスを削除する方法や、automobile の ID にアクセスして削除する方法を教えてください。これを行う理由は、車のテーブルから車を削除するときに、他のテーブルにある車のすべてのインスタンスも削除する必要があるためです。

4

1 に答える 1

2

これを行う理由は、車のテーブルから車を削除するときに、他のテーブルにある車のすべてのインスタンスも削除する必要があるためです。

set を使用してデータベースに外部キーを作成するかON DELETE CASCADE、依存オブジェクトに対して Hibernate のオーファン削除機能を使用する必要があります。

組み合わせて使うことをお勧めします。FOREIGN KEYデータベースに参照を作成しますが、それらを に設定しますON DELETE RESTRICT。次に、孤立した削除などを使用して Hibernate で関係を管理します。データベース チェックにより、Hibernate レベルで何かを見逃した場合でも、データベース内のデータに一貫性がないことが確認されます。代わりに、クエリを実行したりコミットしようとしたりすると、データベース エラーが発生します。

見る:

于 2013-07-19T01:21:40.917 に答える