我正在尝试find_in_set在hibernate状态下使用mysql 字符串函数,但不幸的是我无法使用它,甚至无法通过创建这些注册函数来尝试
find_in_set
registerFunction("findInSet",newSQLFunctionTemplate(Hibernate.STRING,"FIND_IN_SET(?1,?2)")); registerFunction("findInSet",newSQLFunctionTemplate(Hibernate.INTEGER,"FIND_IN_SET(?1,?2)")); registerFunction("findInSet",new StandardSQLFunction("find_in_set", Hibernate.INTEGER));
使用mysqldialect但没有人在工作..任何人都可以告诉我如何在hibernate状态下使用mysql字符串函数。或对上述寄存器功能的任何更改。
提前致谢,
最好的问候,拉贾。
通过扩展mysqldialect来创建一个类,如下所示
public class MySqlDialectExtended extends MySQLDialect { public MySqlDialectExtended() { super(); registerFunction("date_add_interval", new SQLFunctionTemplate(Hibernate.DATE, "date_add(?1, INTERVAL ?2 ?3)")); registerFunction("date_sub_interval", new SQLFunctionTemplate(Hibernate.DATE, "DATE_SUB(?1, INTERVAL ?2 ?3)")); registerFunction("weekofyear", new StandardSQLFunction("weekofyear", Hibernate.INTEGER)); registerFunction("group_concat", new StandardSQLFunction("group_concat", Hibernate.STRING)); }
}
并在查询中像这样使用它
new Query(" >= date_sub_interval(CURRENT_DATE(),1, DAY)");