2016-08-19 105 views
0

我有一個複合主鍵複合主鍵,

public class MainPk{ 

    private int keyOne; 
    private int keyTwo; 

// getters and setters 
    } 

我在這兩個值中搜索

select * from ..... where keyOne = ? and KeyTwo = ? 

查詢但只設置KeyOne搜索只能由其中一人有無論如何只搜索一個?我知道我可以使用標準或查詢,我問是否可以用這種方式

+0

也許寫一個新的查詢嗎? – bradimus

+0

您使用自己寫的自定義查詢嗎? – ByeBye

回答

0

問題是你可能做類似如下:

MainPk id = new MainPk(); 
id.setKeyOne(someValue); 

List<YourEntity> results = session 
     .createQuery("FROM YourEntity e WHERE e.id = :id") 
     .setParameter("id", id) 
     .getResultList(); 

你可以重建你的查詢,並完成你被明確只顧什麼查詢您擁有的合成編號的單個值。 Hibernate不知道是否將你的空值轉換成文字爲null或者它應該忽略它。

List<YourEntity> results = session 
     .createQuery("FROM YourEntity e WHERE e.id.keyOne = :keyOne") 
     .setParameter("keyOne", someValue) 
     .getResultList();