我正在尝试使用带有 Hibernate/JPA 的 RequestFactory 来调用数据库,并且我想检索一个包含返回的嵌入式实体的实体列表。我知道 .with() 方法适用于 .find() 之类的方法,但它似乎不适用于自定义查询。
我目前的做法如下:
我在实体类中使用了一个命名查询来进行查询。(Primary Entity 是 Name,Embedded 实体是一个 Suffix 实体,叫做 nameSuffix)
@NamedQueries({ @NamedQuery(name = "Query.name", query = "select * from NameTable") })
然后在服务类中,我想用 RequestFactory 调用的 .list() 方法如下。
public List<Name> list() {
return emp.get().createNamedQuery("Query.name").getResultList();
}
最后,这就是我在客户端代码中进行调用的方式:
NameRequest context = requestFactory.createNameRequest();
context.list().with("nameSuffix").fire(new Receiver<List<NameProxy>>(){
public void onSuccess(List<NameProxy> response) {
String suff = response.get(0).getNameSuffix().getText();
}
});
在上面的代码中,它说 getNameSuffix() 返回 null,这意味着.with("nameSuffix")
它不能.list()
像使用标准.find()
方法那样处理调用。
有没有办法建立一个调用,使用返回实体列表及其嵌入实体.with()
,或者我需要用另一种方式吗?如果我需要以另一种方式做,有没有人想出一个好的方法?