2 Stimmen

Wie verwendet man MySql date_add in Nhibernate?

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>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X