2016-08-11 1 views
0

Ich bin neu in Hibernate, ich versuche, die Tabellenspalte wie folgt zu aktualisieren, aber es gibt eine Ausnahme - Tabelle ist keine Ausnahme zugeordnet."Nicht zugeordnet" Ausnahme beim Aktualisieren der Tabelle in Hibernate

Session session = sessionFactory.openSession(); 
Transaction tx = session.beginTransaction(); 
String hqlUpdate = "UPDATE TEST_TABLE SET LAST_REFRESH_DATE = :dateToday"; 
Query query = session.createQuery(hqlUpdate); 
query.setParameter("dateToday", new UtilityDate().getTodayDate()); 
int result = query.executeUpdate(); 
System.out.println("Rows affected: " + result); 

Exception

SCHWEREN: Servlet.service() zum Servlet [springmvc] in Zusammenhang mit Pfad [/ TEST] warf Ausnahme [Request Verarbeitung fehlgeschlagen; nested Ausnahme ist org.hibernate.hql.ast.QuerySyntaxException: TEST_TABLE nicht kartiert [UPDATE TEST_TABLE SET LAST_REFRESH_DATE =: dateToday]] mit Ursache org.hibernate.hql.ast.QuerySyntaxException: TEST_TABLE ist nicht kartiert [UPDATE TEST_TABLE SET LAST_REFRESH_DATE =: dateToday] bei org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister (SessionFactoryHelper.java:181) bei org.hibernate.hql.ast.tree.FromElementFactory.addFromElement (FromElementFactory.java: 110) bei org.hibernate.hql.ast.tree.FromClause.addFromElement (FromClause.java:94)

Ich habe alle verwandten Fragen bereits in Stack Overflow überprüft.

+0

Welche Java-Entität mappt 'TEST_TABLE'? Kannst du es posten? –

+0

Siehe http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html – Unknown

+0

Ich denke, Ihre HBM-Datei/Entity Annotation fehlt, dies sollte Ihnen helfen http: // stackoverflow. com/a/8524836/2869769 –

Antwort

1

Einmal im Ruhezustand nach dem Definieren der Tabellenzuordnungen kommunizieren wir immer mit System in Bezug auf Objekt und Klassen. Wie in dem Snippet, das Sie gepostet haben, scheint es, dass Sie den Namen der Datenbanktabelle und ihren Spaltennamen im HQL verwenden, was falsch ist. Stattdessen müssen Sie den Namen der zugeordneten Tabellenklasse und den Namen der Eigenschaft anstelle des Tabellenspaltennamens angeben.

Wenn die Tabelle TEST_TABLE mit der Java-Klasse TestTable und lastRefreshDate der Eigenschaft dieser Klasse zugeordnet ist, die der Spalte LAST_REFRESH_DATE zugeordnet ist, sollte der Code darunter stehen.

Session session = sessionFactory.openSession(); 
    Transaction tx = session.beginTransaction(); 
    String hqlUpdate = "UPDATE TestTable SET lastRefreshDate = :dateToday"; 
    Query query = session.createQuery(hqlUpdate); 
    query.setParameter("dateToday", new UtilityDate().getTodayDate()); 
    int result = query.executeUpdate(); 
    System.out.println("Rows affected: " + result); 
+0

Vielen Dank, es hat funktioniert – ChiranjeeviIT

Verwandte Themen