2012-09-10 44 views
4

我想知道使用JPA/Hibernate注册自定义SQL函数的最佳方法是什么。使用JPA/Hibernate注册SQL函数

我是否需要通过扩展MysqlInnodb方言或者是否有更好的方法?

任何人都可以提供代码示例和指向相关文档的指针吗?

回答

5

是的扩展方言是注册自定义SQL函数的好方法。

在您的Dialect类构造函数中添加这样的内容。

registerFunction("current_timestamp", new NoArgSQLFunction(Hibernate.TIMESTAMP)); 
registerFunction("date", new StandardSQLFunction(Hibernate.DATE)); 

查看一个现有方言类的源代码。 http://www.koders.com/java/fid0E7F787E2EC52F1DA8DFD264EDFBD2DE904A0927.aspx

+0

我是否必须创建一个新的类并扩展现有的方言,还是有另一种更简单的方法? – balteo

+0

是创建一个扩展现有方言类的新类。在休眠配置中将您的类用作方言类。 – gkamal

+2

谢谢!另外:[有趣和相关的链接](http://stackoverflow.com/questions/6113167/hibernate-3-6-registerfunction-in-sql-dialect-not-working) – balteo