私は7つのテーブルを渡る複雑なクエリを持ち、Hibernateでそれを実装する方法を知りたいと思っています。Hibernate - 複数のテーブルから1つのオブジェクトへの複雑なクエリ
私の現在の試みは、session.createSQLQueryを使用してクエリを作成することです。結果を特定のエンティティにマップします。
これまでのように、私は1つのテーブルで1つのエンティティにしか作業していなかったとは思いますが、わかりません。複数のテーブルにまたがる複雑なクエリを使用することを指定する必要があるのはどこですか?それは私のコードの中だけにありますか?私のhbm.xmlファイル?私は私の現在の試みを超えて何かを考えることができません。ここで
は、私のクエリの例です:
String stringQuery =
"select WI.Customer_Id, CU.Card, CU.Code, "+
"PI.Identity_Card, PI.Name, PI.Surname, PI.Gender, "+
"AD.Zip, AD.Geo_Lat, AD.Geo_Long, "+
"CO.City_Geo_Level, "+
"CU.Address_id, CA.Name, "+
"CU.Category_Id, "+
"CU.Status, "+
"Sum(MO.Charged_Points) as Charged_Points, "+
"Sum(MO.Total_Money) as Total_Money, "+
"Count(MO.id) as AmountTransWinner "+
"from Promotions_Winner WI "+
"join Customers CU "+
"on WI.Customer_id = CU.id "+
"join Personal_Info PI "+
"on CU.Personal_Info_Id = PI.id "+
"join Address AD "+
"on CU.Address_Id = AD.id "+
"join Countries CO "+
"on AD.country_id = CO.id "+
"join Campaigns CA "+
"on CU.Campaign_Id = CA.id "+
"join Movements MO "+
"on WI.Movement_Id = MO.id "+
"where WI.Promotion_Id = :pPromotionID "+
"group by "+
"WI.Customer_Id, CU.Card, CU.Fidely_Code, "+
"PI.Identity_Card, PI.Name, PI.Surname, PI.Gender, "+
"AD.Zip, AD.Geo_Lat, AD.Geo_Long, "+
"CO.City_Geo_Level, "+
"CU.Address_id, CA.Name, "+
"CU.Category_Id, "+
"CU.Status";
http://stackoverflow.com/questions/21374550/fetching-data-from-multiple-tables-in-hibernate-and-storing-the-result-in-a-bean/21379254を参照してください#21379254 – Touchstone