要执行此查询,您需要使用RawSql类。您还必须创建将结果投射到的类。
这是示例结果类的代码:
import javax.persistence.Entity; import com.avaje.ebean.annotation.Sql;@Entity @Sql public class Result { String name; Integer value; String param1; String param2; String att1; String att2;}以及执行此查询的示例:
String sql = " SELECt r.name," + " r.value," + " p.name as param1," + " a.name as att1," + " p2.name as param2," + " a2.name as att2" + " FROM compatibility c" + " JOIN attribute a ON c.att1_id = a.id" + " JOIN attribute a2 ON c.att2_id = a2.id" + " JOIN PARAMETER p ON a.parameter_id = p.id" + " JOIN PARAMETER p2 ON a2.parameter_id = p2.id" + " JOIN rating r ON c.rating_id = r.id" + " WHERe p.problem_id = %d" + " OR p2.problem_id = %d"RawSql rawSql = RawSqlBuilder .parse(sql) .columnMapping("r.name", "name") .columnMapping("r.value", "value") .create();Query<Result> query = Ebean.find(Result.class); query.setRawSql(rawSql) .where().gt("amount", 10);List<Result> list = query.findList();


