Das hat mich stundenlang beschäftigt, ich habe im ganzen Internet gesucht, aber keine funktionierende Lösung gefunden. Kann jemand zeigen, wo das Problem ist ... danke! Ich habe meine eigene Dialektklasse erstellt
public class MySQLDialectExtended : MySQLDialect
{
public MySQLDialectExtended()
{
RegisterFunction("date_add_interval", new SQLFunctionTemplate(NHibernateUtil.Date, "date_add(?1, INTERVAL ?2 ?3)"));
}
}
Dann versuche ich, es wie folgt zu verwenden:
query.Append(
" ( date_add_interval(D.ApprovalDate, 1, YEAR) < current_timestamp() < date_add_interval(D.RenewalDate, -1, YEAR) )");
Er schlägt mit folgender Ausnahme fehl:
NHibernate.Hql.Ast.ANTLR.QuerySyntaxException : Exception of type 'Antlr.Runtime.NoViableAltException' was thrown. near line 1, column 677
wobei die Spaltennummer am Ende des ersten Wortes "YEAR" steht.
Bearbeiten: Hier ist meine Konfiguration
<property name="dialect">MyCompanyName.MySQLDialectExtended, MyCompanyName</property>
<property name="hbm2ddl.keywords">none</property>