# Unerklärliche Hibernate Exception



## mavinatic (21. Okt 2010)

Hey ihr Winterschlafenden 

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


```
19:59:24,896  INFO Environment:456 - Hibernate 3.0rc1
19:59:24,912  INFO Environment:469 - hibernate.properties not found
19:59:24,912  INFO Environment:502 - using CGLIB reflection optimizer
19:59:24,912  INFO Environment:532 - using JDK 1.4 java.sql.Timestamp handling
19:59:24,912  INFO Configuration:1228 - configuring from resource: /hibernate.cfg.xml
19:59:24,912  INFO Configuration:1199 - Configuration resource: /hibernate.cfg.xml
19:59:25,224  INFO Configuration:439 - Mapping resource: account.hbm.xml
19:59:25,412  INFO HbmBinder:256 - Mapping class: de.Webshop.AccountManager.DataObjects.Account -> accounts
19:59:25,443  INFO Configuration:1340 - Configured SessionFactory: null
19:59:25,443  INFO Configuration:844 - processing extends queue
19:59:25,443  INFO Configuration:848 - processing collection mappings
19:59:25,443  INFO Configuration:857 - processing association property references
19:59:25,443  INFO Configuration:884 - processing foreign key constraints
19:59:25,521  INFO Dialect:89 - Using dialect: org.hibernate.dialect.MySQLDialect
19:59:25,521  INFO SettingsFactory:87 - Maximum outer join fetch depth: 2
19:59:25,521  INFO SettingsFactory:90 - Default batch fetch size: 1
19:59:25,521  INFO SettingsFactory:94 - Generate SQL with comments: disabled
19:59:25,521  INFO SettingsFactory:98 - Order SQL updates by primary key: disabled
19:59:25,521  INFO SettingsFactory:273 - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
19:59:25,537  INFO ASTQueryTranslatorFactory:21 - Using ASTQueryTranslatorFactory
19:59:25,537  INFO SettingsFactory:106 - Query language substitutions: {}
19:59:25,537  INFO DriverManagerConnectionProvider:41 - Using Hibernate built-in connection pool (not for production use!)
19:59:25,537  INFO DriverManagerConnectionProvider:42 - Hibernate connection pool size: 10
19:59:25,537  INFO DriverManagerConnectionProvider:45 - autocommit mode: true
19:59:25,552  INFO DriverManagerConnectionProvider:80 - using driver: org.gjt.mm.mysql.Driver at URL: jdbc:mysql://localhost:3306/webshop
19:59:25,552  INFO DriverManagerConnectionProvider:86 - connection properties: {user=customers, password=****, autocommit=true}
19:59:25,802  INFO SettingsFactory:148 - JDBC batch size: 15
19:59:25,802  INFO SettingsFactory:151 - JDBC batch updates for versioned data: disabled
19:59:25,818  INFO SettingsFactory:156 - Scrollable result sets: enabled
19:59:25,818  INFO SettingsFactory:164 - JDBC3 getGeneratedKeys(): enabled
19:59:25,818  INFO TransactionFactoryFactory:31 - Using default transaction strategy (direct JDBC transactions)
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)
19:59:25,818  INFO SettingsFactory:176 - Automatic flush during beforeCompletion(): disabled
19:59:25,818  INFO SettingsFactory:179 - Automatic session close at end of transaction: disabled
19:59:25,818  INFO SettingsFactory:260 - Cache provider: org.hibernate.cache.EhCacheProvider
19:59:25,833  INFO SettingsFactory:187 - Second-level cache: enabled
19:59:25,833  INFO SettingsFactory:192 - Optimize cache for minimal puts: disabled
19:59:25,833  INFO SettingsFactory:199 - Structured second-level cache entries: enabled
19:59:25,833  INFO SettingsFactory:203 - Query cache: disabled
19:59:25,833  INFO SettingsFactory:210 - Echoing all SQL to stdout
19:59:25,833  INFO SettingsFactory:214 - Statistics: disabled
19:59:25,833  INFO SettingsFactory:218 - Deleted entity synthetic identifier rollback: disabled
19:59:25,833  INFO SettingsFactory:232 - Default entity-mode: pojo
19:59:25,974  INFO SessionFactoryImpl:140 - building session factory
19:59:25,974 DEBUG CacheManager:191 - Creating new CacheManager with default config
19:59:25,974 DEBUG CacheManager:164 - Configuring ehcache from classpath.
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
19:59:25,990 DEBUG Configuration$DiskStore:185 - Disk Store Path: C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\
19:59:26,240  INFO SessionFactoryObjectFactory:82 - Not binding factory to JNDI, no JNDI name configured
19:59:26,240  INFO Dialect:89 - Using dialect: org.hibernate.dialect.MySQLDialect
19:59:26,240  INFO DriverManagerConnectionProvider:41 - Using Hibernate built-in connection pool (not for production use!)
19:59:26,240  INFO DriverManagerConnectionProvider:42 - Hibernate connection pool size: 10
19:59:26,240  INFO DriverManagerConnectionProvider:45 - autocommit mode: true
19:59:26,255  INFO DriverManagerConnectionProvider:80 - using driver: org.gjt.mm.mysql.Driver at URL: jdbc:mysql://localhost:3306/webshop
19:59:26,255  INFO DriverManagerConnectionProvider:86 - connection properties: {user=customers, password=****, autocommit=true}
19:59:26,255  INFO SchemaUpdate:105 - Running hbm2ddl schema update
19:59:26,255  INFO SchemaUpdate:117 - fetching database metadata
19:59:26,287  INFO SchemaUpdate:133 - updating schema
19:59:26,287  INFO Configuration:844 - processing extends queue
19:59:26,287  INFO Configuration:848 - processing collection mappings
19:59:26,287  INFO Configuration:857 - processing association property references
19:59:26,287  INFO Configuration:884 - processing foreign key constraints
19:59:26,333  INFO TableMetadata:38 - table found: webshop.accounts
19:59:26,333  INFO TableMetadata:39 - columns: [id, username, email, password]
19:59:26,333  INFO TableMetadata:40 - foreign keys: []
19:59:26,333  INFO TableMetadata:41 - indexes: [primary]
19:59:26,333  INFO SchemaUpdate:153 - schema update complete
19:59:26,333  INFO DriverManagerConnectionProvider:147 - cleaning up connection pool: jdbc:mysql://localhost:3306/webshop
19:59:26,333  INFO SessionFactoryImpl:366 - Checking 0 named queries
19:59:26,396 DEBUG SQL:292 - SELECT * FROM accounts
Hibernate: SELECT * FROM accounts
19:59:26,412  WARN JDBCExceptionReporter:57 - SQL Error: 0, SQLState: S0022
19:59:26,412 ERROR JDBCExceptionReporter:58 - Column 'ID0_' not found.
Exception in thread "main" org.hibernate.exception.GenericJDBCException: could not execute query
    at org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
    at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    at org.hibernate.loader.Loader.doList(Loader.java:1502)
    at org.hibernate.loader.Loader.list(Loader.java:1482)
    at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:103)
    at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1333)
    at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:146)
    at de.Webshop.AccountManager.Hibernate.HConnection.getAllAccounts(HConnection.java:32)
    at de.Webshop.AccountManager.Startup.Main.main(Main.java:27)
Caused by: java.sql.SQLException: Column 'ID0_' not found.
    at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:2316)
    at com.mysql.jdbc.ResultSet.getInt(ResultSet.java:1287)
    at org.hibernate.type.IntegerType.get(IntegerType.java:26)
    at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:77)
    at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:68)
    at org.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:650)
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:277)
    at org.hibernate.loader.Loader.doQuery(Loader.java:384)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:203)
    at org.hibernate.loader.Loader.doList(Loader.java:1499)
    ... 6 more
```

Das hier ist die Hibernate.cfg.xml 


```
<?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>
          <property name="hibernate.hbm2ddl.auto">update</property>
        <mapping resource="account.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
```

account.hbm.xml

```
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="de.Webshop.AccountManager.DataObjects.Account" table="accounts">
   <id name="id" type="integer" column="ID" >
   <generator class="assigned"/>
  </id>

  <property name="username">
     <column name="USERNAME" />
  </property>
  <property name="password">
    <column name="PASSWORD"/>
  </property>
  <property name="email">
    <column name="EMAIL"/>
  </property>
 </class>
</hibernate-mapping>
```

MainClass:


```
package de.Webshop.AccountManager.Startup;
import java.util.List;

import org.hibernate.Session;

import de.Webshop.AccountManager.DataObjects.Account;
import de.Webshop.AccountManager.Hibernate.HConnection;


public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        HConnection connection = new HConnection();
        Session session = connection.createConnection();
//        Account account = new Account();
//        account.setId(1000);
//        account.setEmail("test@test-mail.com");
//        account.setUsername("test");
//        account.setPassword("test");
//        
//        connection.saveAccount(session, account);
        
        List<Account> list = connection.getAllAccounts(session);
        for(int i=0;i<list.size();i++) {
            System.out.println(list.get(i).getUsername());
        }
    }

}
```

HConnection-Class

```
package de.Webshop.AccountManager.Hibernate;


import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import de.Webshop.AccountManager.DataObjects.Account;

public class HConnection {
    public Session createConnection() {
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session = sessionFactory.openSession();
        
        return session;
    }
    
    public void saveAccount(Session session, Account object) {
        Transaction tx = session.beginTransaction();
        session.save(object);
        tx.commit();
    }
    public void closeConnection(Session session) {
        session.flush();
        session.close();
    }
    public List<Account> getAllAccounts(Session session) {
        Transaction tx = session.beginTransaction();
        List<Account> accounts = session.createSQLQuery("SELECT * FROM accounts").addEntity("Account", Account.class).list();
        return accounts;
    }
}
```

Und noch die JavaBean: ACCOUNT 
	
	
	
	





```
package de.Webshop.AccountManager.DataObjects;

public class Account {
    private String username;
    private String password;
    private String email;
    private long id;
    
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
}
```

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


----------



## Marcinek (21. Okt 2010)

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.


----------



## mavinatic (21. Okt 2010)

achso  Meinst du ich soll SELECT ID,EMAIL,USERNAME,PASSWORD FROM ACCOUNTS?


----------



## Marcinek (21. Okt 2010)

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.


----------



## KSG9|sebastian (22. Okt 2010)

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.


----------



## mavinatic (22. Okt 2010)

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.


----------



## MySelV (22. Okt 2010)

Hi, 

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


```
@Table(name = "account")
public class Account {

}
```

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.


----------



## mavinatic (22. Okt 2010)

<?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])


----------



## MySelV (22. Okt 2010)

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


----------



## mavinatic (22. Okt 2010)

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


```
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]
```


----------



## MySelV (23. Okt 2010)

Morgen,

die Felder / Attribute werden auch über das Objekt angesprochen und müssen deshalb genauso wie im Objekt sein. Groß- Kleinschreibung ist bei Java doch schon immer wichtig...
So sollte es gehen: acc.id, ...

Grüße


----------



## mavinatic (23. Okt 2010)

Was würde ich Ohne DICH machen? Danke Vielmals für die Hilfe! aber wieder ne exception wo ich nicht weiterweiß wenn ich das alles bei google eingebe bekomme ich keine ergebnisse 

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to de.Webshop.AccountManager.DataObjects.Account
	at de.Webshop.AccountManager.Startup.Main.main(Main.java:29)

Es kann nicht nach ACCOUNT gecastet werden Oo warum? und wo caste Ich? Wahrscheinlich von DB zu Object?!


----------



## MySelV (23. Okt 2010)

Hi,

jemanden anderen fragen, würdest du ohne mich 

Kompletter Stacktrace wäre gut, aber spontan tippe ich auch die Methode getAllAccounts()

Grüße

Edit: Am besten du debugst die Methode mal. Und es wäre gut, wenn du die Transaktion auch wieder schließt, nachdem du die Accounts abgefragt hast.


----------



## mavinatic (23. Okt 2010)

Die Klasse HConnection


```
package de.Webshop.AccountManager.Hibernate;


import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import de.Webshop.AccountManager.DataObjects.Account;

public class HConnection {
    public Session createConnection() {
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session = sessionFactory.openSession();
        
        return session;
    }
    
    public void saveAccount(Session session, Account object) {
        Transaction tx = session.beginTransaction();
        session.save(object);
        tx.commit();
    }
    public void closeConnection(Session session) {
        session.flush();
        session.close();
    }
    public List<Account> getAllAccounts(Session session) {
        Transaction tx = session.beginTransaction();
        List<Account> accounts = session.createQuery("SELECT acc.id,acc.username,acc.password,acc.email FROM Account AS acc").list();
        tx.commit();
        return accounts;
    }
}
```

Kompletter Stracktrace...

```
11:21:38,828  INFO Environment:456 - Hibernate 3.0rc1
11:21:38,828  INFO Environment:469 - hibernate.properties not found
11:21:38,844  INFO Environment:502 - using CGLIB reflection optimizer
11:21:38,844  INFO Environment:532 - using JDK 1.4 java.sql.Timestamp handling
11:21:38,844  INFO Configuration:1228 - configuring from resource: /hibernate.cfg.xml
11:21:38,844  INFO Configuration:1199 - Configuration resource: /hibernate.cfg.xml
11:21:39,125  INFO Configuration:439 - Mapping resource: account.hbm.xml
11:21:39,219  INFO HbmBinder:256 - Mapping class: de.Webshop.AccountManager.DataObjects.Account -> account
11:21:39,266  INFO Configuration:1340 - Configured SessionFactory: null
11:21:39,266  INFO Configuration:844 - processing extends queue
11:21:39,266  INFO Configuration:848 - processing collection mappings
11:21:39,266  INFO Configuration:857 - processing association property references
11:21:39,266  INFO Configuration:884 - processing foreign key constraints
11:21:39,391  INFO Dialect:89 - Using dialect: org.hibernate.dialect.MySQLDialect
11:21:39,407  INFO SettingsFactory:87 - Maximum outer join fetch depth: 2
11:21:39,407  INFO SettingsFactory:90 - Default batch fetch size: 1
11:21:39,407  INFO SettingsFactory:94 - Generate SQL with comments: disabled
11:21:39,407  INFO SettingsFactory:98 - Order SQL updates by primary key: disabled
11:21:39,407  INFO SettingsFactory:273 - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
11:21:39,485  INFO ASTQueryTranslatorFactory:21 - Using ASTQueryTranslatorFactory
11:21:39,500  INFO SettingsFactory:106 - Query language substitutions: {}
11:21:39,516  INFO DriverManagerConnectionProvider:41 - Using Hibernate built-in connection pool (not for production use!)
11:21:39,516  INFO DriverManagerConnectionProvider:42 - Hibernate connection pool size: 10
11:21:39,516  INFO DriverManagerConnectionProvider:45 - autocommit mode: true
11:21:39,547  INFO DriverManagerConnectionProvider:80 - using driver: org.gjt.mm.mysql.Driver at URL: jdbc:mysql://localhost:3306/webshop
11:21:39,547  INFO DriverManagerConnectionProvider:86 - connection properties: {user=customers, password=****, autocommit=true}
11:21:39,797  INFO SettingsFactory:148 - JDBC batch size: 15
11:21:39,797  INFO SettingsFactory:151 - JDBC batch updates for versioned data: disabled
11:21:39,797  INFO SettingsFactory:156 - Scrollable result sets: enabled
11:21:39,797  INFO SettingsFactory:164 - JDBC3 getGeneratedKeys(): enabled
11:21:39,797  INFO TransactionFactoryFactory:31 - Using default transaction strategy (direct JDBC transactions)
11:21:39,828  INFO TransactionManagerLookupFactory:33 - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
11:21:39,828  INFO SettingsFactory:176 - Automatic flush during beforeCompletion(): disabled
11:21:39,828  INFO SettingsFactory:179 - Automatic session close at end of transaction: disabled
11:21:39,828  INFO SettingsFactory:260 - Cache provider: org.hibernate.cache.EhCacheProvider
11:21:39,828  INFO SettingsFactory:187 - Second-level cache: enabled
11:21:39,828  INFO SettingsFactory:192 - Optimize cache for minimal puts: disabled
11:21:39,828  INFO SettingsFactory:199 - Structured second-level cache entries: enabled
11:21:39,828  INFO SettingsFactory:203 - Query cache: disabled
11:21:39,828  INFO SettingsFactory:210 - Echoing all SQL to stdout
11:21:39,828  INFO SettingsFactory:214 - Statistics: disabled
11:21:39,828  INFO SettingsFactory:218 - Deleted entity synthetic identifier rollback: disabled
11:21:39,828  INFO SettingsFactory:232 - Default entity-mode: pojo
11:21:40,063  INFO SessionFactoryImpl:140 - building session factory
11:21:40,078 DEBUG CacheManager:191 - Creating new CacheManager with default config
11:21:40,078 DEBUG CacheManager:164 - Configuring ehcache from classpath.
11:21:40,094  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
11:21:40,094 DEBUG Configuration$DiskStore:185 - Disk Store Path: C:\DOKUME~1\ADMINI~1\LOKALE~1\Temp\
11:21:40,453  INFO SessionFactoryObjectFactory:82 - Not binding factory to JNDI, no JNDI name configured
11:21:40,453  INFO SessionFactoryImpl:366 - Checking 0 named queries
11:21:40,610 DEBUG parser:83 - throwQueryException() : no errors
11:21:40,672 DEBUG parser:83 - throwQueryException() : no errors
11:21:40,688 DEBUG parser:83 - throwQueryException() : no errors
11:21:40,703 DEBUG SQL:292 - select account0_.ID as col_0_0_, account0_.USERNAME as col_1_0_, account0_.PASSWORD as col_2_0_, account0_.EMAIL as col_3_0_ from account account0_
Hibernate: select account0_.ID as col_0_0_, account0_.USERNAME as col_1_0_, account0_.PASSWORD as col_2_0_, account0_.EMAIL as col_3_0_ from account account0_
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to de.Webshop.AccountManager.DataObjects.Account
    at de.Webshop.AccountManager.Startup.Main.main(Main.java:29)
```


----------



## mvitz (23. Okt 2010)

Wieso gibst du beim dem HSQL Query immer alle Felder an?


```
...
public List<Account> getAllAccounts(Session session) {
        Transaction tx = session.beginTransaction();
        List<Account> accounts = session.createQuery("FROM Account").list();
        tx.commit();
        return accounts;
    }
...
```


----------



## mavinatic (23. Okt 2010)

weil ich sonst noch ne andere exception bekomme!

Wenn ich nur das object ausgeben lasse: 


```
List<Account> list = connection.getAllAccounts(session);
        for(int i=0;i<list.size();i++) {
            System.out.println(list.get(i));
        }
```

funktionierts, wenn ich ne GET methode zb.: getUsername() dranhänge bekomm ich die exception!


----------



## mvitz (23. Okt 2010)

Also bei mir funktioniert es. Habe jedoch testweise lediglich H2 und nicht MySQL als Datenbank genutzt. Ich habe zwei Vermutungen woran das liegen könnte.

1) Deine Hibernate Version (3.0.RC1) ist leicht veraltet, die neueste ist zur Zeit 3.5.4-Final.
2) Du nutzt anscheinend MySQL im MyISAM Modus (org.hibernate.dialect.MySQLMyISAMDialect) und MyISAM unterstützt keine Transaktionen. Versuch es doch einmal über den InnoDB Modus.


----------



## mavinatic (24. Okt 2010)

Hallo ihrs 

Ich habe alles ausprobiert aber funktionierte NICHTS. Naja ich dachte mir nun ich fange einmal neu an und habe ein ganz simples tutorial genommen, welches ich auf meiner MYSQL Datenbank laufen lasse,... aber auch hier bekomme ich fehler 

FirstExample.java

```
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;


/**
 * @author Deepak Kumar
 *
 * [url=http://www.roseindia.net]JSP Tutorials,EJB Tutorial,JDBC Tutorials,Free Java Servlets Tutorials, WAP Tutorials, Spring Framework Tutorials, J2EE Tutorials, BioInformatics Tutorials, Java Server Faces Tutorials, Jboss Tutorials, Hibernate Tutorials, XML and MySQL Tutorials[/url]
 * Hibernate example to inset data into Contact table
 */
public class FirstExample {
  public static void main(String[] args) {
    Session session = null;

    try{
       SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
       session = sessionFactory.openSession();
 
        System.out.println("Inserting Record");
        Contact contact = new Contact();
        contact.setId(3);
        contact.setFirstName("Deepak");
        contact.setLastName("Kumar");
        contact.setEmail("deepak_38@yahoo.com");
        session.save(contact);
        System.out.println("Done");
    }catch(Exception e){
      System.out.println(e.getMessage());
    }finally{
//    	session.flush();
    	session.close();
      }
    
  }
}
```

Contact.hbm.xml
[XML]<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
  <class name="Contact" table="test"><!-- CLASSPATH  -->
   <id name="id" type="integer" column="id" >
   <generator class="assigned"/>
  </id>

  <property name="firstName">
     <column name="firstname" />
  </property>
  <property name="lastName">
    <column name="lastname"/>
  </property>
  <property name="email">
    <column name="email"/>
  </property>
 </class>
</hibernate-mapping>[/XML]

[XML]<?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.url">jdbc:mysql://localhost/webshop</property>
      <property name="hibernate.connection.username">root</property>
      <property name="hibernate.connection.password">admin</property>
      <property name="hibernate.connection.pool_size">10</property>
      <property name="show_sql">true</property>
      <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

          <mapping resource="contact.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
[/XML]

Was mach ich falsch ich hatte bisher Hibernate nur an Oracle und da gings eigentlich immer problemlos...Was mach ich falsch?

Den fehler den ich bekomme ist keiner! aber es wird nichts eingetragen!

Stacktrace:

```
12:43:29,212  INFO Environment:560 - Hibernate 3.3.2.GA
12:43:29,212  INFO Environment:593 - hibernate.properties not found
12:43:29,228  INFO Environment:771 - Bytecode provider name : javassist
12:43:29,228  INFO Environment:652 - using JDK 1.4 java.sql.Timestamp handling
12:43:29,369  INFO Configuration:1474 - configuring from resource: /hibernate.cfg.xml
12:43:29,369  INFO Configuration:1451 - Configuration resource: /hibernate.cfg.xml
12:43:29,478  INFO Configuration:600 - Reading mappings from resource : contact.hbm.xml
12:43:29,603  INFO HbmBinder:322 - Mapping class: Contact -> test
12:43:29,619  INFO Configuration:1589 - Configured SessionFactory: null
12:43:29,697  INFO DriverManagerConnectionProvider:64 - Using Hibernate built-in connection pool (not for production use!)
12:43:29,697  INFO DriverManagerConnectionProvider:65 - Hibernate connection pool size: 10
12:43:29,697  INFO DriverManagerConnectionProvider:68 - autocommit mode: false
12:43:29,712  INFO DriverManagerConnectionProvider:103 - using driver: org.gjt.mm.mysql.Driver at URL: jdbc:mysql://localhost/webshop
12:43:29,728  INFO DriverManagerConnectionProvider:109 - connection properties: {user=root, password=****}
12:43:29,978  INFO SettingsFactory:114 - RDBMS: MySQL, version: 5.1.50-community
12:43:29,978  INFO SettingsFactory:115 - JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-3.0.16-ga ( $Date: 2004/09/30 07:35:03 $, $Revision: 1.27.2.44 $ )
12:43:30,025  INFO Dialect:175 - Using dialect: org.hibernate.dialect.MySQLDialect
12:43:30,025  INFO TransactionFactoryFactory:59 - Using default transaction strategy (direct JDBC transactions)
12:43:30,040  INFO TransactionManagerLookupFactory:80 - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
12:43:30,040  INFO SettingsFactory:161 - Automatic flush during beforeCompletion(): disabled
12:43:30,040  INFO SettingsFactory:165 - Automatic session close at end of transaction: disabled
12:43:30,040  INFO SettingsFactory:172 - JDBC batch size: 15
12:43:30,040  INFO SettingsFactory:175 - JDBC batch updates for versioned data: disabled
12:43:30,040  INFO SettingsFactory:180 - Scrollable result sets: enabled
12:43:30,040  INFO SettingsFactory:188 - JDBC3 getGeneratedKeys(): enabled
12:43:30,040  INFO SettingsFactory:196 - Connection release mode: auto
12:43:30,040  INFO SettingsFactory:220 - Maximum outer join fetch depth: 2
12:43:30,040  INFO SettingsFactory:223 - Default batch fetch size: 1
12:43:30,040  INFO SettingsFactory:227 - Generate SQL with comments: disabled
12:43:30,040  INFO SettingsFactory:231 - Order SQL updates by primary key: disabled
12:43:30,040  INFO SettingsFactory:235 - Order SQL inserts for batching: disabled
12:43:30,040  INFO SettingsFactory:397 - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
12:43:30,056  INFO ASTQueryTranslatorFactory:47 - Using ASTQueryTranslatorFactory
12:43:30,056  INFO SettingsFactory:243 - Query language substitutions: {}
12:43:30,056  INFO SettingsFactory:248 - JPA-QL strict compliance: disabled
12:43:30,056  INFO SettingsFactory:253 - Second-level cache: enabled
12:43:30,056  INFO SettingsFactory:257 - Query cache: disabled
12:43:30,056  INFO SettingsFactory:382 - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory
12:43:30,056  INFO SettingsFactory:267 - Optimize cache for minimal puts: disabled
12:43:30,056  INFO SettingsFactory:276 - Structured second-level cache entries: disabled
12:43:30,056  INFO SettingsFactory:296 - Echoing all SQL to stdout
12:43:30,056  INFO SettingsFactory:305 - Statistics: disabled
12:43:30,056  INFO SettingsFactory:309 - Deleted entity synthetic identifier rollback: disabled
12:43:30,056  INFO SettingsFactory:324 - Default entity-mode: pojo
12:43:30,056  INFO SettingsFactory:328 - Named query checking : enabled
12:43:30,150  INFO SessionFactoryImpl:193 - building session factory
12:43:30,462  INFO SessionFactoryObjectFactory:105 - Not binding factory to JNDI, no JNDI name configured
Inserting Record
Done
```


----------



## mvitz (24. Okt 2010)

Keine Transaktion genutzt! Abgesehen davon nutzt man als JDBC Driver Class mittlereweile com.mysql.jdbc.Driver


----------



## mavinatic (24. Okt 2010)

oke funktioniert  aber mal gucken ob das mit der LISTE klappt^^


----------



## KSG9|sebastian (8. Nov 2010)

ganz ehrlich: Kauf dir Buch und lern die Grundlagen. 
Oder schau dir die umfangreiche Hibernate Dokumentation an, die ist wirklich gut und auch nicht so viel wie ein ganzes Buch.

Es hat wenig Sinn wenn du schon an so simplen Beispielen scheiterst.


----------

