私は通常、オブジェクトを永続化する方法は、entityManager.persist(オブジェクト)を呼び出すことです。独自のコンストラクタにオブジェクトを永続化する方法があるので、たくさんのファクトリクラスを作成する必要はありません。hibernateでは、オブジェクトをコンストラクタに永続化できますか?
同様に、インスタンスメソッドを使用してオブジェクトを削除する方法はありますか?
これらのどちらかが良いアイデアですか、それとも外部のクラスを使ってこのようなことをするべきですか?
私は通常、オブジェクトを永続化する方法は、entityManager.persist(オブジェクト)を呼び出すことです。独自のコンストラクタにオブジェクトを永続化する方法があるので、たくさんのファクトリクラスを作成する必要はありません。hibernateでは、オブジェクトをコンストラクタに永続化できますか?
同様に、インスタンスメソッドを使用してオブジェクトを削除する方法はありますか?
これらのどちらかが良いアイデアですか、それとも外部のクラスを使ってこのようなことをするべきですか?
これは良い考えではありません。なぜなら、Hibernateはオブジェクトのインスタンスをインスタンス化してクエリから返すときに、オブジェクトのコンストラクタを呼び出す必要があるからです。
クリーンなデザインでは、エンティティオブジェクト/ドメインモデルレイヤーは、パーシスタンスレイヤーをまったく認識しません。
あなたのEntityManagerはそれを行うための恐ろしい方法だろう唯一の可能AspectJ weavingを使用しているエンティティが構築される前に実体、または静的初期化子、中に注入されなければならないだろう。
エンティティのインスタンスメソッドを使用して削除することを意味する場合、EntityManagerが何らかの形で利用可能であることを再度想定してください。
一般に、エンティティはインスタンス作成時に永続化されず、もう一方は必ずしも非定型であるとは限りません。