加入我上課:在Hibernate查詢
class User{
String id;
ArrayList<UserAttribute> attributeList=new ArrayList<UserAttribute>();
}
class UserAttribute{
User user;
String value;
String key;
}
我有相關的類表。
表用戶
column id
表 user_attribute
column user_id
column key
column value
例如用戶表格內容
user_id="123"
user_id="234"
例如user_attribute表內容
user_id="123", key="address", value="green house street"
user_id=234, key="address", value="blue house street"
user_id="123", key="phone", value="234324"
user_id="234", key="phone", value="786988"
我想誰擁有的地址「綠房子街」 和(非或)有電話「234324」
我寫SQL(甲骨文)的用戶SQL編輯器:
select u.* from user u left join user_attribute prop on u.id=prop.user_id inner join user_attribute prop2 on prop.user_id = prop2.user_id where prop.value = 'green house street' and prop.key = 'address' and prop2.key ='phone' and prop2.value = '234324';
我試圖在休眠方面許多東西:但不能使用聯接,因爲得到
「unecpected token on」
使用「on」子句時出錯。
到底我寫
entityManager.createQuery(
select u from User u, u.attributeList prop, u.attributeList prop2 where prop.value = :address and prop.key = :key and prop2.key =:key2 and prop2.value = :phone and prop.user.id=u.id and prop2.user.id=u.id and prop2.user.id=prop.user.id
)..setParameter("key", "address")
.setParameter("phone", "234324")
.setParameter("key2", "phone")
.setParameter("address", "green house street").getSingleResult();
仍然沒有機會,
我努力找到一個查詢解決方案,但至今無法achive。 感謝您的任何想法。
感謝,我寫試圖提前 – merveotesi
它的好,謝謝後反饋 – merveotesi