我在原始SQL中遇到了一些奇怪的问题,我需要一些帮助才能找到修复它的最佳方法。当然,我可以添加columnMappings,但我想确保这不是因为我做错了什么。
如果我没有定义RawSQL,那么对Postgresql数据库执行以下columnMappings失败,尽管我定义了一个别名:
String sql
= " Select date_trunc('day', end_time) as theDate, "
+ " count(*) as value "
+ " From ebay_item "
+ " group by date_trunc('day', end_time) ";
RawSql rawSql =
RawSqlBuilder
.parse(sql)
.create();错误:
016-03-25 12:05:15,303错误m.c.a.e.s.p.SimpleDBPromiseService -执行命名查询javax.persistence.PersistenceException: Property dateTrunc(在m.c.a.e.s.p.SimpleDBPromiseService上找不到‘day’)的错误
如果我切换到一个H2数据库:
String sql
= " SELECT trunc(end_time) as theDate, "
+ " count(*) as value "
+ " From ebay_item "
+ " Group by trunc(end_time)";
RawSql rawSql =
RawSqlBuilder
.parse(sql)
.create();没什么问题。
任何建议都会很感激的。
发布于 2016-05-26 15:05:16
我不认为mysql喜欢按函数分组或排序,您应该使用别名"theDate“来代替。
注意,如果要映射到bean对象,则别名必须是要由Ebean映射的bean的@瞬态属性(否则,您将得到一个未知的属性错误)。
https://stackoverflow.com/questions/36219976
复制相似问题