私はこれSQL expression
をHibernate
使用して翻訳する必要がありますCriteria
select id,field1,field2,count(*) from my_table
group by field1,field2 having count(*)>1;
これまでの私のコードは次のとおりです。
final Session session = ......
ProjectionList projectionList = (ProjectionList)emptyProjection();
projectionList.add(Projections.property("id"),"id");
projectionList.add(Projections.groupProperty("codeI"));
projectionList.add(Projections.groupProperty("codeII"));
projectionList.add(Projections.sqlGroupProjection("count(*)","having count(*)>1",new String[]{},new Type[]{StandardBasicTypes.INTEGER}));
final Criteria criteria = session.createCriteria(MyClass.class).setProjection(projectionList).setResultTransformer(transformer(MyClass.class));
return new ArrayList<MyClass>(criteria.list());
私の問題は
基準はこの SQL を生成しています。
group by
this_.FIELD1,
this_.FIELD2,
having
count(*)>1
ご覧のとおり、2 番目のグループの後に a が続き、COMMA
this_.FIELD2,
mySQL がスローされていますSyntaxError
アップデート
ここに私のhibernate.cfgがあります
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
そして、私たちは使用mysql 5.5.29
していますHIBERNATE 4.2.3
誰かがヒントをくれることを願っています。
よろしくお願いします..