2013-02-25 61 views
1

我正在使用JPA。我有specyfic屬性的Java實體類 - 即在單個列映射類:Hibernate JPA - 如何獲取路徑映射到單列的類的屬性?

@Entity 
MyClass{ 

    @Column(length = 6, nullable = true) 
    @Type(type = "mypackage.MyInnerClassHibernateType") 
    @Mergable 
    private MyInnerClass myProperty; 

    ... 

} 

類MyInnerClass很簡單隻包含一個字符串和一些方法:

public class MyInnerClass{ 

    private String value; 

    ... 
} 

我有建築的標準問題。假設我有加入<?,MyClass > jMyClass, 和我需要路徑<字符串>值,所以我可以使用builder.like(...)比較它。

怎麼辦?

Path<String> path = jMyClass.get("myProperty"); 

給我:參數值不匹配,期望的類型

Path<String> path = jMyClass.get("myProperty").get("value"); 

給我:非法嘗試取消引用路徑源[空]

回答

1

那不能做,因爲最終它會將我們對數據庫運行的SQL查詢。數據庫不知道存儲到myProperty的數據是名爲value的字段的對象。

一般來說,Java編程語言的其他結構也不能用於SQL查詢 - 即使查詢是通過Criteria API構建的。