我想创建一个将属性填充到我的假对象的方法,而不是三个@Formulas。 MySimpleData是MyHugeObject的简单版本,我不想完全加载。

 @Formula("(select myObject.id1 as id1, myObject.id2 as id2, myObject"
            + ".id3 as id3 from my_object myObject where myObject.id = this_id)")
    private MySimpleData mySimpleData = new MySimpleData();



org.hibernate.MappingException:无法确定以下类型:
mypackage.MySimpleData


 public class MySimpleData {

    private Long id1;
    private String id2;
    private String id3;

    public MySimpleData(Long id1, String id2, String id3) {
        this.id1 = id1;
        this.id2 = id2;
        this.id3 = id3;
    }

    public MySimpleData() {
    }
}

最佳答案

您可以尝试这样的事情。

@Formula("(select new MySimpleData(myObject.id1, myObject.id2, myObject.id3) from my_object myObject where myObject.id = this_id)")
private MySimpleData mySimpleData;


如果仍然出现相同的错误,请在MySimpleData前面添加完整的类路径。

像这样select new full.classPath.MySimpleData(..

08-07 00:05