在Play Framework中执行原始sql查询

时间:2015-04-13 11:34:17

标签: java sql playframework-2.0

我使用模型类使用find来获取记录,使用obj.save()等插入记录。

find.where().eq("email", email).eq("password", password)
            .findUnique();

如何编写原始查询以将结果提取到bean对象或bean对象列表中:

User user = "select * from user where email=" + email + " and password = " + password

1 个答案:

答案 0 :(得分:3)

假设您使用的是Ebean,您可以使用以下内容:

String sql = 
 "select id, name from user where email=" + email + " and password = " + password;

RawSql rawSql =   
 RawSqlBuilder  
    .parse(sql)
    .columnMapping("id",  "user.id")  
    .columnMapping("name",  "user.name")
    .create();  

Query<User> query = Ebean.find(User.class);  
query.setRawSql(rawSql);  

List<User> list = query.findList(); 

如果您的查询不仅仅是一个玩具示例,您还需要参数化输入以防止sql注入。

ebean docs提供了有关使用原始sql的更多信息。