JPA / Ebean选择加入

时间:2015-10-16 12:00:48

标签: playframework ebean

假设我有2个实体:问题和用户,我想返回有问题和用户信息的对象。我怎样才能让Ebean连接并将结果绑定到新类? (我的意图是将有一个选择连接查询到db,而不是提取问题,然后为每个问题查询将用户信息绑定到它们。)

例如:

@Entity
class User extends Model {
    String name;

    @ManyToOne
    @LazyLoad
    List<Questions> questions;
}

@Entity
class Question extends Model {
   String question;

   @OneToMany
   @LazyLoad
   User user;
}

@????
class QuestionUserResult {
   String question;
   String userName;
}
Ebean.find(QuestionUserResult.class) ????? // Intent there to have "select * from question inner join user on ...... "

网上处理过滤的大多数示例。在这种情况下我不关心条件。

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

我认为你想要的是这个(我在这个例子中假设一个类型为Long的id属性):

import com.avaje.ebean.Model.Find;
import com.avaje.ebean.Model.Finder;

Find<Long, Question> finder = new Finder<Long,Question>(Question.class);
List<Question> result = finder.fetch("user.name").findList();

这将获取所有Question实例并使用UserTable进行连接,但仅检索用户的名称。 Ebean有[部分对象]的概念,可以很容易地从他们那里获取你想要的东西1