Java-Forum.org  
Zurück   Java-Forum.org > >

Data Tier: Unerklärliche Hibernate Exception

JPA, Transaktionsmanagement, Hibernate, iBatis

Antwort    
Themen-Optionen Thema durchsuchen Ansicht
Alt 21.10.2010, 19:15   #1
mavinatic
 
Unerklärliche Hibernate Exception - Standard Unerklärliche Hibernate Exception

Hey ihr Winterschlafenden

Ich bekomme eine für mich unerklärliche Exception:

Java Code:
  1. 19:59:24,896  INFO Environment:456 - Hibernate 3.0rc1
  2. 19:59:24,912  INFO Environment:469 - hibernate.properties not found
  3. 19:59:24,912  INFO Environment:502 - using CGLIB reflection optimizer
  4. 19:59:24,912  INFO Environment:532 - using JDK 1.4 java.sql.Timestamp handling
  5. 19:59:24,912  INFO Configuration:1228 - configuring from resource: /hibernate.cfg.xml
  6. 19:59:24,912  INFO Configuration:1199 - Configuration resource: /hibernate.cfg.xml
  7. 19:59:25,224  INFO Configuration:439 - Mapping resource: account.hbm.xml
  8. 19:59:25,412  INFO HbmBinder:256 - Mapping class: de.Webshop.AccountManager.DataObjects.Account -> accounts
  9. 19:59:25,443  INFO Configuration:1340 - Configured SessionFactory: null
  10. 19:59:25,443  INFO Configuration:844 - processing extends queue
  11. 19:59:25,443  INFO Configuration:848 - processing collection mappings
  12. 19:59:25,443  INFO Configuration:857 - processing association property references
  13. 19:59:25,443  INFO Configuration:884 - processing foreign key constraints
  14. 19:59:25,521  INFO Dialect:89 - Using dialect: org.hibernate.dialect.MySQLDialect
  15. 19:59:25,521  INFO SettingsFactory:87 - Maximum outer join fetch depth: 2
  16. 19:59:25,521  INFO SettingsFactory:90 - Default batch fetch size: 1
  17. 19:59:25,521  INFO SettingsFactory:94 - Generate SQL with comments: disabled
  18. 19:59:25,521  INFO SettingsFactory:98 - Order SQL updates by primary key: disabled
  19. 19:59:25,521  INFO SettingsFactory:273 - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
  20. 19:59:25,537  INFO ASTQueryTranslatorFactory:21 - Using ASTQueryTranslatorFactory
  21. 19:59:25,537  INFO SettingsFactory:106 - Query language substitutions: {}
  22. 19:59:25,537  INFO DriverManagerConnectionProvider:41 - Using Hibernate built-in connection pool (not for production use!)
  23. 19:59:25,537  INFO DriverManagerConnectionProvider:42 - Hibernate connection pool size: 10
  24. 19:59:25,537  INFO DriverManagerConnectionProvider:45 - autocommit mode: true
  25. 19:59:25,552  INFO DriverManagerConnectionProvider:80 - using driver: org.gjt.mm.mysql.Driver at URL: jdbc:mysql://localhost:3306/webshop
  26. 19:59:25,552  INFO DriverManagerConnectionProvider:86 - connection properties: {user=customers, password=****, autocommit=true}
  27. 19:59:25,802  INFO SettingsFactory:148 - JDBC batch size: 15
  28. 19:59:25,802  INFO SettingsFactory:151 - JDBC batch updates for versioned data: disabled
  29. 19:59:25,818  INFO SettingsFactory:156 - Scrollable result sets: enabled
  30. 19:59:25,818  INFO SettingsFactory:164 - JDBC3 getGeneratedKeys(): enabled
  31. 19:59:25,818  INFO TransactionFactoryFactory:31 - Using default transaction strategy (direct JDBC transactions)
  32. 19:59:25,818  INFO TransactionManagerLookupFactory:33 - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
  33. 19:59:25,818  INFO SettingsFactory:176 - Automatic flush during beforeCompletion(): disabled
  34. 19:59:25,818  INFO SettingsFactory:179 - Automatic session close at end of transaction: disabled
  35. 19:59:25,818  INFO SettingsFactory:260 - Cache provider: org.hibernate.cache.EhCacheProvider
  36. 19:59:25,833  INFO SettingsFactory:187 - Second-level cache: enabled
  37. 19:59:25,833  INFO SettingsFactory:192 - Optimize cache for minimal puts: disabled
  38. 19:59:25,833  INFO SettingsFactory:199 - Structured second-level cache entries: enabled
  39. 19:59:25,833  INFO SettingsFactory:203 - Query cache: disabled
  40. 19:59:25,833  INFO SettingsFactory:210 - Echoing all SQL to stdout
  41. 19:59:25,833  INFO SettingsFactory:214 - Statistics: disabled
  42. 19:59:25,833  INFO SettingsFactory:218 - Deleted entity synthetic identifier rollback: disabled
  43. 19:59:25,833  INFO SettingsFactory:232 - Default entity-mode: pojo
  44. 19:59:25,974  INFO SessionFactoryImpl:140 - building session factory
  45. 19:59:25,974 DEBUG CacheManager:191 - Creating new CacheManager with default config
  46. 19:59:25,974 DEBUG CacheManager:164 - Configuring ehcache from classpath.
  47. 19:59:25,974  WARN Configurator:126 - No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:/C:/Dokumente%20und%20Einstellungen/Administrator/Desktop/Projekte/Hibernate%20Test/libs/ehcache-1.1.jar!/ehcache-failsafe.xml
  48. 19:59:25,990 DEBUG Configuration$DiskStore:185 - Disk Store Path: C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\
  49. 19:59:26,240  INFO SessionFactoryObjectFactory:82 - Not binding factory to JNDI, no JNDI name configured
  50. 19:59:26,240  INFO Dialect:89 - Using dialect: org.hibernate.dialect.MySQLDialect
  51. 19:59:26,240  INFO DriverManagerConnectionProvider:41 - Using Hibernate built-in connection pool (not for production use!)
  52. 19:59:26,240  INFO DriverManagerConnectionProvider:42 - Hibernate connection pool size: 10
  53. 19:59:26,240  INFO DriverManagerConnectionProvider:45 - autocommit mode: true
  54. 19:59:26,255  INFO DriverManagerConnectionProvider:80 - using driver: org.gjt.mm.mysql.Driver at URL: jdbc:mysql://localhost:3306/webshop
  55. 19:59:26,255  INFO DriverManagerConnectionProvider:86 - connection properties: {user=customers, password=****, autocommit=true}
  56. 19:59:26,255  INFO SchemaUpdate:105 - Running hbm2ddl schema update
  57. 19:59:26,255  INFO SchemaUpdate:117 - fetching database metadata
  58. 19:59:26,287  INFO SchemaUpdate:133 - updating schema
  59. 19:59:26,287  INFO Configuration:844 - processing extends queue
  60. 19:59:26,287  INFO Configuration:848 - processing collection mappings
  61. 19:59:26,287  INFO Configuration:857 - processing association property references
  62. 19:59:26,287  INFO Configuration:884 - processing foreign key constraints
  63. 19:59:26,333  INFO TableMetadata:38 - table found: webshop.accounts
  64. 19:59:26,333  INFO TableMetadata:39 - columns: [id, username, email, password]
  65. 19:59:26,333  INFO TableMetadata:40 - foreign keys: []
  66. 19:59:26,333  INFO TableMetadata:41 - indexes: [primary]
  67. 19:59:26,333  INFO SchemaUpdate:153 - schema update complete
  68. 19:59:26,333  INFO DriverManagerConnectionProvider:147 - cleaning up connection pool: jdbc:mysql://localhost:3306/webshop
  69. 19:59:26,333  INFO SessionFactoryImpl:366 - Checking 0 named queries
  70. 19:59:26,396 DEBUG SQL:292 - SELECT * FROM accounts
  71. Hibernate: SELECT * FROM accounts
  72. 19:59:26,412  WARN JDBCExceptionReporter:57 - SQL Error: 0, SQLState: S0022
  73. 19:59:26,412 ERROR JDBCExceptionReporter:58 - Column 'ID0_' not found.
  74. Exception in thread "main" org.hibernate.exception.GenericJDBCException: could not execute query
  75.     at org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
  76.     at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
  77.     at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
  78.     at org.hibernate.loader.Loader.doList(Loader.java:1502)
  79.     at org.hibernate.loader.Loader.list(Loader.java:1482)
  80.     at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:103)
  81.     at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1333)
  82.     at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:146)
  83.     at de.Webshop.AccountManager.Hibernate.HConnection.getAllAccounts(HConnection.java:32)
  84.     at de.Webshop.AccountManager.Startup.Main.main(Main.java:27)
  85. Caused by: java.sql.SQLException: Column 'ID0_' not found.
  86.     at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:2316)
  87.     at com.mysql.jdbc.ResultSet.getInt(ResultSet.java:1287)
  88.     at org.hibernate.type.IntegerType.get(IntegerType.java:26)
  89.     at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:77)
  90.     at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:68)
  91.     at org.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:650)
  92.     at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:277)
  93.     at org.hibernate.loader.Loader.doQuery(Loader.java:384)
  94.     at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:203)
  95.     at org.hibernate.loader.Loader.doList(Loader.java:1499)
  96.     ... 6 more

Das hier ist die Hibernate.cfg.xml

Java Code:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3.         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  4.         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  5. <hibernate-configuration>
  6.     <session-factory>
  7.         <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
  8.         <property name="hibernate.connection.password">customers</property>
  9.         <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/webshop</property>
  10.         <property name="hibernate.connection.username">customers</property>
  11.         <property name="hibernate.dialect">org.hibernate.dialect.MySQLMyISAMDialect</property>
  12.         <property name="hibernate.connection.pool_size">10</property>
  13.           <property name="show_sql">true</property>
  14.           <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
  15.           <property name="connection.autocommit">true</property>
  16.           <property name="hibernate.hbm2ddl.auto">update</property>
  17.         <mapping resource="account.hbm.xml"/>
  18.     </session-factory>
  19. </hibernate-configuration>

account.hbm.xml
Java Code:
  1. <?xml version="1.0"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  5. <hibernate-mapping>
  6.     <class name="de.Webshop.AccountManager.DataObjects.Account" table="accounts">
  7.    <id name="id" type="integer" column="ID" >
  8.    <generator class="assigned"/>
  9.   </id>
  10.  
  11.   <property name="username">
  12.      <column name="USERNAME" />
  13.   </property>
  14.   <property name="password">
  15.     <column name="PASSWORD"/>
  16.   </property>
  17.   <property name="email">
  18.     <column name="EMAIL"/>
  19.   </property>
  20.  </class>
  21. </hibernate-mapping>

MainClass:

Java Code:
  1. package de.Webshop.AccountManager.Startup;
  2. import java.util.List;
  3.  
  4. import org.hibernate.Session;
  5.  
  6. import de.Webshop.AccountManager.DataObjects.Account;
  7. import de.Webshop.AccountManager.Hibernate.HConnection;
  8.  
  9.  
  10. public class Main {
  11.  
  12.     /**
  13.      * @param args
  14.      */
  15.     public static void main(String[] args) {
  16.         // TODO Auto-generated method stub
  17.         HConnection connection = new HConnection();
  18.         Session session = connection.createConnection();
  19. //        Account account = new Account();
  20. //        account.setId(1000);
  21. //        account.setEmail("test@test-mail.com");
  22. //        account.setUsername("test");
  23. //        account.setPassword("test");
  24. //        
  25. //        connection.saveAccount(session, account);
  26.        
  27.         List<Account> list = connection.getAllAccounts(session);
  28.         for(int i=0;i<list.size();i++) {
  29.             System.out.println(list.get(i).getUsername());
  30.         }
  31.     }
  32.  
  33. }

HConnection-Class
Java Code:
  1. package de.Webshop.AccountManager.Hibernate;
  2.  
  3.  
  4. import java.util.List;
  5.  
  6. import org.hibernate.Session;
  7. import org.hibernate.SessionFactory;
  8. import org.hibernate.Transaction;
  9. import org.hibernate.cfg.Configuration;
  10.  
  11. import de.Webshop.AccountManager.DataObjects.Account;
  12.  
  13. public class HConnection {
  14.     public Session createConnection() {
  15.         SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
  16.         Session session = sessionFactory.openSession();
  17.        
  18.         return session;
  19.     }
  20.    
  21.     public void saveAccount(Session session, Account object) {
  22.         Transaction tx = session.beginTransaction();
  23.         session.save(object);
  24.         tx.commit();
  25.     }
  26.     public void closeConnection(Session session) {
  27.         session.flush();
  28.         session.close();
  29.     }
  30.     public List<Account> getAllAccounts(Session session) {
  31.         Transaction tx = session.beginTransaction();
  32.         List<Account> accounts = session.createSQLQuery("SELECT * FROM accounts").addEntity("Account", Account.class).list();
  33.         return accounts;
  34.     }
  35. }

Und noch die JavaBean: ACCOUNT
Java Code:
  1. package de.Webshop.AccountManager.DataObjects;
  2.  
  3. public class Account {
  4.     private String username;
  5.     private String password;
  6.     private String email;
  7.     private long id;
  8.    
  9.     public String getUsername() {
  10.         return username;
  11.     }
  12.     public void setUsername(String username) {
  13.         this.username = username;
  14.     }
  15.     public String getPassword() {
  16.         return password;
  17.     }
  18.     public void setPassword(String password) {
  19.         this.password = password;
  20.     }
  21.     public String getEmail() {
  22.         return email;
  23.     }
  24.     public void setEmail(String email) {
  25.         this.email = email;
  26.     }
  27.     public long getId() {
  28.         return id;
  29.     }
  30.     public void setId(long id) {
  31.         this.id = id;
  32.     }
  33. }

Ich hab nun alle meine Klassen gepostet, wie ihr seht habe ich keine Column "ID_0" ich versteh nicht warum ich dann die Exception dafür bekomme, denn meine TABLE Column ID nennt sich "ID" wofür ist diese ID_0? ich verstehs nicht.

Gruß George
 
Alt 21.10.2010, 20:04   #2
 
Unerklärliche Hibernate Exception - Standard AW: Unerklärliche Hibernate Exception

Steht drin:

Column 'ID0_' not found.


Für mich wäre das nicht "unerklärlich"

Ich schätze mal, dass das passiert, wenn man select * from macht.

Dann möchte er eine ID, er bennt sie um in id0, haben.
 
Alt 21.10.2010, 20:55   #3
mavinatic
Themenstarter
 
Unerklärliche Hibernate Exception - Standard AW: Unerklärliche Hibernate Exception

achso Meinst du ich soll SELECT ID,EMAIL,USERNAME,PASSWORD FROM ACCOUNTS?
 
Alt 21.10.2010, 21:29   #4
 
Unerklärliche Hibernate Exception - Standard AW: Unerklärliche Hibernate Exception

Probiere es aus.

Und an der session gibt es 2 createQuery(). Das eine erzeugt SQL und das andere HQL.

Du müsstest das HQL verwenden.
 
Alt 22.10.2010, 10:10   #5
KSG9|sebastian
 
Unerklärliche Hibernate Exception - Standard AW: Unerklärliche Hibernate Exception

Zuerst verwende die Methode createQuery - die nimmt HQL statt SQL. Damit brauchst du auch kein addEntity mehr.

Existiert die Tabelle schon? Sicher das "id" kein reserviertes Schlüsselwort der Datenbank ist. Solche Dinge hatte ich auch schon.
 
Alt 22.10.2010, 19:17   #6
mavinatic
Themenstarter
 
Unerklärliche Hibernate Exception - Standard AW: Unerklärliche Hibernate Exception

Hallo ihrs,
ich bekomme nun eine weitere exception?! Zu dem habe ich meine Table von der mysql datenbank auf account umbenannt nicht das ihr euch wundert?!. Ich hab das doch alles in der hibernate.cfg.xml eingetragen :O?! Warum gehts nicht?

Exception in thread "main" org.hibernate.hql.ast.QuerySyntaxError: account is not mapped.
 
Alt 22.10.2010, 21:13   #7
MySelV
 
Unerklärliche Hibernate Exception - Standard AW: Unerklärliche Hibernate Exception

Hi,

Dann teile Hibernate auch mit, dass du die Tabelle umbenannt hast:

Java Code:
  1. @Table(name = "account")
  2. public class Account {
  3.  
  4. }

Wobei das eigentlich der Standardname für die Tabelle wäre. Ich weiß nicht wie clever Hibernate.ddl bei "update" ist. Mach mal ein drop-create zum Test.

Edit: Poste nochmal deine hibernate.cfg.xml und auch dein Query, wie es jetzt aussieht. Diese AST Fehler hatte ich auch schon oft, obwohl nur die Syntax der Query falsch war.
 
Alt 22.10.2010, 21:18   #8
mavinatic
Themenstarter
 
Unerklärliche Hibernate Exception - Standard AW: Unerklärliche Hibernate Exception

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
<property name="hibernate.connection.password">customers</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/webshop</property>
<property name="hibernate.connection.username">customers</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLMyISAMDialect</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.autocommit">true</property>
<mapping resource="account.hbm.xml"/>
</session-factory>
</hibernate-configuration>


Meine neue Exception (=org.hibernate.hql.ast.QuerySyntaxError: account is not mapped. [SELECT acc.ID,acc.USERNAME,acc.PASSWORD,acc.EMAIL FROM account AS acc])
 
Alt 22.10.2010, 21:28   #9
MySelV
 
Unerklärliche Hibernate Exception - Standard AW: Unerklärliche Hibernate Exception

Hi,

der Fehler liegt bei

"FROM account AS acc".

Hibernate arbeitet immer mit den Objekten! Das heißt du musst bei allen Zugriffen auf Tabellen den Klassennamen verwenden. Ergo: Account und nicht account!


Grüße
 
Alt 22.10.2010, 22:16   #10
mavinatic
Themenstarter
 
Unerklärliche Hibernate Exception - Standard AW: Unerklärliche Hibernate Exception

Gut das hat geklappt aber ich verzweifel solangsam denn ich hab die nächste exception ;O

Java Code:
  1. Exception in thread "main" org.hibernate.QueryException: could not resolve property: ID of: de.Webshop.AccountManager.DataObjects.Account [SELECT acc.ID,acc.USERNAME,acc.PASSWORD,acc.EMAIL FROM de.Webshop.AccountManager.DataObjects.Account AS acc]
 
Antwort    

Zurück   Java-Forum.org > >

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen: Unerklärliche Hibernate Exception
Unerklärliche org.hibernate.MappingException
Unerklärliche org.hibernate.MappingException: Moin, ich versuche mich gerade mit dem Buch...
JSP & Hibernate Exception
JSP & Hibernate Exception: Hallo ich habe Probiert mit einer JSP Seite auf...
Unerklärliche Null-Pointer-Exception bei JRadioButton Array
Unerklärliche Null-Pointer-Exception bei JRadioButton Array: Moin Kann mir jemand erklären, wie hier eine...
Unerklärliche IndexOutOfBounds - Exception
Unerklärliche IndexOutOfBounds - Exception: Hy, die jvm wirft mir bei folgender methode die...


Sie betrachten gerade Unerklärliche Hibernate Exception


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2014, vBulletin Solutions, Inc.