KVI*_*ISH 7 java sql ebean playframework-2.0
我正在使用PlayFramework,我真的很喜欢它.当我想从表中获取数据时,例如我有一个user
表,我使用以下语法:
List<User> users = User.find.where().eq("email", email).findList();
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我得到用户对象时,我有一个id
列.使用该id
值,我可以映射到其他表,并且id
这些表的's'可以映射到更多的表,因此跨多个表连接的基本概念.是否有任何示例或地方我可以阅读它描述如何使用上述语法实现它?
我试图找到自己而不能,只有这样我才能想到它是使用直接sql与准备好的语句,我宁愿不做.
bie*_*ior 16
ellou'kalvish
Relationships
车型之间设置与普通JPA注释像@OneToMany
,@ManyToOne
,@OneToOne
等等.
因此,如果您有User.java
用户表的Question.java
模型和用户问题的模型,您可以加入它们@OneToMany
(One User
has Many Question
s)
用户
@Entity
public class User extends Model {
@Id
public Long id;
public String email;
@OneToMany
public List<Question> questions;
}
Run Code Online (Sandbox Code Playgroud)
题
@Entity
public class Question extends Model {
@Id
public Long id;
public String question;
}
Run Code Online (Sandbox Code Playgroud)
当您在控制器中选择用户时,Ebean将默认执行"加入",并且还将获取所有用户的问题:
User user = User.find.where().eq("email", email).findUnique();
List<Question> usersQuestion = user.questions;
Run Code Online (Sandbox Code Playgroud)
默认情况下,Ebean会获取所有对象的属性和关系,因此您无需创建子查询.当然,您甚至可以选择/获取当前所需的数据.
在官方的Ebean文档页面,你会发现很好的参考指南(pdf),关系的一般描述在章节中提供11.6.2 Relationships
.
在部分中4.1.2 Query
有一个示例(第二个),它演示了如何使用select()
和获取"部分"对象fetch()