Search code examples
javaspringhibernatesql-functiondialect

Registering a SQL function with JPA and Hibernate


I would like to know what's the best way to register a custom SQL function with JPA/Hibernate.

Do I have to go through extending the MysqlInnodb dialect or is there a better way?

Can anyone please provide code samples and pointers to relevant documentation?


Solution

  • Yes extending the dialect is a good way of registering custom SQL function.

    Add something like this in your Dialect classes constructor.

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

    Look at the source code of one of the existing dialect classes. http://www.koders.com/java/fid0E7F787E2EC52F1DA8DFD264EDFBD2DE904A0927.aspx