2013-02-25 53 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构建的。