0
私は特定のタイプのオブジェクトを保持するデータベースを持っています。これをBaseObjectと呼びます。私のプロジェクトには、より具体的な用途があるBaseObjectと多くのフィールドを共有する2つのオブジェクトもあります。 DAOに3つの関数、3つのハイバネートクエリ、getAllBaseObjects、getAllObjectOnes、およびgetAllObjectTwosを呼びたいと思います。クエリ私は現在、このような外観を使用しています:JavaコンストラクタをHibernateクエリで使用する
などパラメーター1、パラメーターは、他の二つのオブジェクトでBaseObjectのフィールドとコンストラクタのパラメータです<query name="getAllBaseObjects">
from com.example.BaseObject
</query>
<query name="getAllObjectOnes">
select new com.example.ObjectOne(parameter1, parameter2)
from com.example.BaseObject
</query>
<query name="getAllObjectTwos">
select new com.example.ObjectTwo(parameter1, parameter2, parameter3)
from com.example.BaseObject
</query>
。しかし、両方のオブジェクトには、BaseObjectのインスタンスを取るコンストラクタもあり、そのコンストラクタをhibernateクエリで使用する簡単な方法があるかどうかは疑問でした。私は
<query name="getAllObjectOnes">
select new com.example.ObjectOne(*)
from com.example.BaseObject
</query>
と
<query name="getAllObjectOnes">
select new com.example.ObjectOne(com.example.BaseObject)
from com.example.BaseObject
</query>
を試してみたが、それらのどちらも動作するように見えました。
私がしたいことをする方法はありますか、現在持っているものをそのまま維持する必要がありますか?
この機能を:https://dzone.com/refcardz/whats-new-jpa-20 –