2

しばらくの間 S​​tackOverflow を検索しましたが、これまでのところ成功していません。したがって、この質問を作成しています...

私は現在 JPA を使用していますが、問題に遭遇しました (少なくとも、私にとってはそうです)。状況は次のとおりです。ユーザーを削除できるシステムを作成しましたが、データベースから削除することはできません (この特定のユーザーの注文を保持するため)。これを機能させるために、エンティティ ユーザーにブール値を追加しただけです。ここまではすべて問題ありませんが、ここで注意が必要です。システムの使用には「削除された」ユーザーは必要ないため、データベースからユーザーを取得したくありません。

@Entity アノテーションに何らかのステートメントを追加する方法はありますか? または、この場合、 @Entity を使用するべきではありませんか?

助けてくれてありがとう!

PS。ある種の User_OLD テーブルを作成する必要があるソリューションを探しているわけではありません。

4

1 に答える 1

3

まず、ユーザーを削除しないため、「削除済み」列の名前を「非アクティブ」に変更することをお勧めします。

エンティティを取得するには、次の 2 つの選択肢があります。

  • inactive == false に基づいてデータベースに USER_ACTIVE VIEW を作成し、 @Entity を USER_ACTIVE ビューを使用するように変更します。
  • USER テーブルからの取得時に WHERE inactive == false 句を追加します。

@FetchType.LAZY で注釈が付けられたユーザーのコレクションを保持するエンティティがある場合:

  • 上で定義したのと同じ where 句を使用して、必要に応じてユーザーをフェッチします。
于 2012-04-16T13:12:00.813 に答える