この例で問題を説明します。
私はモデル名とメイクを持つVehicleオブジェクトを持っています。メイクが与えられたら、関連する車両をリストアップする必要があります。 makeとmodelの両方が与えられたら、適切な車両をリストアップする必要があります。Hibernateの例クエリ
例: 「Vehicle」というエンティティがあります。エンティティ名がMakeModel
のmakeModelというプロキシがあります。 MakeModelは「作る」とエンティティ名モデルとMake.Both Entititiyes「モデル」であり「モデル」されているプロキシと「make」を持つ文字列変数「name'.Hereはここでクラス
class Vehicle{
private Integer vehicleId;
private MakeModel makeMOdel;
//getters and setters
}
class MakeModel {
private Make make;
private Model model;
//getters and setters
}
class Make{
private Integer mid;
private String make;
}
class Model{
private Integer mdlid;
private String modelName;
}
ありましたかIであります車両リストを取得しようとしました。ここでは、session
はHibernate Sessionです。
Criteria cr= session.createCriteria(Vehicle.class);
MakeModel mkmd=new MakeModel();
if(/* if only the make is give */){
Make mk=new Make();
mk.setMake("Toyota");
mkmd.setMake(mk);
}
else if(if both make and and model given){
Make mk=new Make();
mk.setMake("Toyota");
mkmd.setMake(mk);
Model md=new Model("Venus");
mkmd.setModel(md);
}
cr.createCriteria("makeModel").add(Example.create(mkmd));List l=cr.list();
しかし、これはすべての車両を返します。 HQLではなく、Hibernateの基準を使ってすべての車両を取得したい。
同じ質問がhereであり、thisも参照してください。いずれにしても、どこが間違っているか、また、指定された基準に従って車両リストを取得する方法を教えてくれます。
質問は?あなたが参照した答えは良い出発点です。何を試しましたか?そして、「私は問題を解決できませんでした」とはどういう意味ですか? – home
これに対して適切な休止状態を取得することはそれほど難しいことではありませんが、VehicleおよびMakeModelエンティティのコードを提供することができればもっと簡単になります。 –
@Home。ご注意いただきありがとうございます。質問はすべてのコードで編集されました。 –