Ebean:如何使用通配符将字段名称与RawSqlBuilder一起使用?

时间:2015-05-19 15:18:02

标签: playframework ebean playframework-2.3

有样本方法:

private static List<Foo> getFoos() {
    Query<Foo> query = Ebean.find(Foo.class);
    query.setRawSql(
            RawSqlBuilder
                    .parse("SELECT * FROM foo")
                    .create()
    );

    return query.findList();
}

不幸的是它引发了异常:

  

[PersistenceException:在models.Foo上找不到Property [*]

当然,如果我在SQL中指定字段,那么它很好用:

.parse("SELECT foo, bar, baz FROM foo")

无论如何我不想手动操作,因为后来Ebean执行其他查询以获取不在列表中的属性,在这种情况下如何使用*通配符来表示模型的字段名称?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用unparsed代替

RawSqlBuilder
    .unparsed("SELECT * FROM SomeTable")
    .columnMapping("id", "id")
    .create();

请注意,您需要指定至少一个列映射,否则Ebean会抱怨此类

Query threw SQLException: Column Index out of range, 0 < 1