[Hibernate-JIRA] Created: (HHH-2293) HQL Query with fetch causes exception if no rows selected be query (java.sql.SQLException: Exhausted Resultset )
by Andriy Solonchuk (JIRA)
HQL Query with fetch causes exception if no rows selected be query (java.sql.SQLException: Exhausted Resultset )
----------------------------------------------------------------------------------------------------------------
Key: HHH-2293
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2293
Project: Hibernate3
Type: Bug
Components: core
Versions: 3.2.2
Environment: Oracle 10g2 (10.2.0.2.0) Hiberbate 3.2.0
Reporter: Andriy Solonchuk
After executing next query
select p from ProductHibernate p left join FETCH p.productSomeCollection
where 1=2 /* that will cause NO rows returned*/
we will have exception
org.hibernate.exception.GenericJDBCException: could not perform sequential read of results (forward)
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
...
Caused by: java.sql.SQLException: Exhausted Resultset
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
...
at org.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:1088)
at org.hibernate.loader.Loader.loadSequentialRowsForward(Loader.java:375)
... 24 more
If we will review code of Loader.java class we can see next
if ( resultSet.isAfterLast() ) {
// don't even bother trying to read further
return null;
}
if ( resultSet.isBeforeFirst() ) {
resultSet.next();
}
So at this step there are no checking if resultSet has any rows...
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
18 years
[Hibernate-JIRA] Created: (ANN-622) TableGenerator is considered when @Id is defined in MappedSuperclass
by Chandra (JIRA)
TableGenerator is considered when @Id is defined in MappedSuperclass
---------------------------------------------------------------------
Key: ANN-622
URL: http://opensource.atlassian.com/projects/hibernate/browse/ANN-622
Project: Hibernate Annotations
Issue Type: Bug
Components: binder
Affects Versions: 3.3.0.ga
Environment: Hibernate Core 3.2.4.sp1
Hibernate Annotations 3.3.0.GA
hibernate-entitymanager-3.3.1.GA
Reporter: Chandra
Attachments: Cat.java, cat.xml, IdTest.java
We have id defined in a MappedSuperclass (Base) and derrived entity class (Cat). We specify table-generator in an xml file (cat.xml) and use attribute override for ID column. testMappedSuperClassWithTableGenerator in org.hibernate.test.annotations.id.IdTest class fails. If we inline mapped super class with Entity then the test cases succeeds.
With attached debugger we noticed that the TableGenerator is attached to in the begining when the class is in the process of mapping. However, at later point it get overridden by org.hibernate.id.Assigned.
The output with oracle db is,
17:43:51,651 INFO Version:118 - Hibernate Annotations 3.3.0.GA
17:43:51,682 INFO Environment:118 - Hibernate 3.2.4.sp1
17:43:51,697 INFO Environment:118 - hibernate.properties not found
17:43:51,697 INFO Environment:118 - Bytecode provider name : cglib
17:43:51,713 INFO Environment:118 - using JDK 1.4 java.sql.Timestamp handling
17:43:51,869 INFO Version:118 - Hibernate EntityManager 3.3.1.GA
17:43:51,916 DEBUG Ejb3Configuration:97 - Look up for persistence unit: vet
17:43:51,916 DEBUG Ejb3Configuration:76 - Analyse of persistence.xml: file:/C:/projects/sample/target/classes/META-INF/persistence.xml
17:43:52,963 DEBUG DTDEntityResolver:97 - trying to resolve system-id [file:/C:/projects/sample/target/classes/META-INF/xsd/persistence_1_0.xsd]
17:43:52,963 DEBUG EJB3DTDEntityResolver:97 - recognized EJB3 ORM namespace; attempting to resolve on classpath under org/hibernate/ejb
17:43:52,963 DEBUG EJB3DTDEntityResolver:97 - located [file:/C:/projects/sample/target/classes/META-INF/xsd/persistence_1_0.xsd] in classpath
17:43:53,119 DEBUG DTDEntityResolver:97 - trying to resolve system-id [file:/C:/projects/sample/target/classes/META-INF/vets-persistence.xml]
17:43:53,182 DEBUG DTDEntityResolver:97 - trying to resolve system-id [file:/C:/projects/sample/target/classes/META-INF/content-api-persistence.xml]
17:43:53,244 DEBUG PersistenceXmlLoader:76 - Persistent Unit name from persistence.xml: vet
17:43:53,323 DEBUG PersistenceXmlLoader:76 - Persistent Unit name from persistence.xml: content
17:43:53,323 DEBUG Ejb3Configuration:76 - PersistenceMetadata [
name: vet
jtaDataSource: null
nonJtaDataSource: null
transactionType: RESOURCE_LOCAL
provider: null
classes[
org.hibernate.test.annotations.id.Cat ]
packages[
]
mappingFiles[
META-INF/cat.xml
]
jarFiles[
]
hbmfiles: 0
properties[
hibernate.cache.use_query_cache]: false
hibernate.connection.driver_class: oracle.jdbc.driver.OracleDriver
hibernate.dialect: org.hibernate.dialect.Oracle9Dialect
com.intellij.javaee.persistence.datasource: LocalScott
hibernate.cache.use_second_level_cache: false
hibernate.format_sql: true
hibernate.connection.username: scott
hibernate.archive.autodetection: false
hibernate.connection.url: jdbc:oracle:thin:@server:1521:sid
hibernate.bytecode.use_reflection_optimizer: true
hibernate.show_sql: true
hibernate.connection.password: tiger
]]
17:43:53,338 DEBUG JarVisitor:76 - JAR URL from URL Entry: file:/C:/projects/sample/target/classes/META-INF/persistence.xml >> file:/C:/projects/sample/target/classes
17:43:53,338 DEBUG Ejb3Configuration:97 - Detect class: false; detect hbm: false
17:43:53,338 DEBUG JarVisitor:97 - Searching mapped entities in jar/par: file:/C:/projects/sample/target/classes
17:44:01,089 DEBUG AnnotationConfiguration:97 - Process hbm files
17:44:01,089 DEBUG AnnotationConfiguration:97 - Process annotated classes
17:44:01,089 DEBUG AnnotationConfiguration:97 - processing manytoone fk mappings
17:44:01,089 DEBUG Configuration:97 - processing extends queue
17:44:01,089 DEBUG Configuration:97 - processing collection mappings
17:44:01,089 DEBUG Configuration:97 - processing native query and ResultSetMapping mappings
17:44:01,089 DEBUG Configuration:97 - processing association property references
17:44:01,104 DEBUG Configuration:97 - processing foreign key constraints
17:44:01,104 INFO AnnotationConfiguration:118 - Hibernate Validator not found: ignoring
17:44:01,229 INFO DriverManagerConnectionProvider:118 - Using Hibernate built-in connection pool (not for production use!)
17:44:01,229 INFO DriverManagerConnectionProvider:118 - Hibernate connection pool size: 20
17:44:01,229 INFO DriverManagerConnectionProvider:118 - autocommit mode: true
17:44:01,245 INFO DriverManagerConnectionProvider:118 - using driver: oracle.jdbc.driver.OracleDriver at URL: jdbc:oracle:thin:@server:1521:sid
17:44:01,245 INFO DriverManagerConnectionProvider:118 - connection properties: {user=scott, password=tiger, autocommit=true, release_mode=auto}
17:44:01,245 DEBUG DriverManagerConnectionProvider:76 - total checked-out connections: 0
17:44:01,245 DEBUG DriverManagerConnectionProvider:97 - opening new JDBC connection
17:44:01,870 DEBUG DriverManagerConnectionProvider:97 - created connection to: jdbc:oracle:thin:@server:1521:sid, Isolation Level: 2
17:44:01,886 INFO SettingsFactory:118 - RDBMS: Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
17:44:01,886 DEBUG DriverManagerConnectionProvider:76 - returning connection to pool, pool size: 1
17:44:01,932 INFO Dialect:118 - Using dialect: org.hibernate.dialect.Oracle9Dialect
17:44:01,948 INFO TransactionFactoryFactory:118 - Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
17:44:01,948 INFO TransactionManagerLookupFactory:118 - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
17:44:01,948 INFO SettingsFactory:118 - Automatic flush during beforeCompletion(): disabled
17:44:01,948 INFO SettingsFactory:118 - Automatic session close at end of transaction: disabled
17:44:01,948 INFO SettingsFactory:118 - JDBC batch size: 15
17:44:01,948 INFO SettingsFactory:118 - JDBC batch updates for versioned data: disabled
17:44:01,948 INFO SettingsFactory:118 - Scrollable result sets: enabled
17:44:01,964 DEBUG SettingsFactory:97 - Wrap result sets: disabled
17:44:01,964 INFO SettingsFactory:118 - JDBC3 getGeneratedKeys(): disabled
17:44:01,964 INFO SettingsFactory:118 - Connection release mode: auto
17:44:01,964 INFO SettingsFactory:118 - Default batch fetch size: 1
17:44:01,964 INFO SettingsFactory:118 - Generate SQL with comments: disabled
17:44:01,964 INFO SettingsFactory:118 - Order SQL updates by primary key: disabled
17:44:01,964 INFO SettingsFactory:118 - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
17:44:01,964 INFO ASTQueryTranslatorFactory:118 - Using ASTQueryTranslatorFactory
17:44:01,964 INFO SettingsFactory:118 - Query language substitutions: {}
17:44:01,964 INFO SettingsFactory:118 - JPA-QL strict compliance: enabled
17:44:01,964 INFO SettingsFactory:118 - Second-level cache: disabled
17:44:01,964 INFO SettingsFactory:118 - Query cache: disabled
17:44:01,964 INFO SettingsFactory:118 - Optimize cache for minimal puts: disabled
17:44:01,964 INFO SettingsFactory:118 - Structured second-level cache entries: disabled
17:44:01,979 DEBUG SQLExceptionConverterFactory:76 - Using dialect defined converter
17:44:01,979 INFO SettingsFactory:118 - Echoing all SQL to stdout
17:44:01,979 INFO SettingsFactory:118 - Statistics: disabled
17:44:01,979 INFO SettingsFactory:118 - Deleted entity synthetic identifier rollback: disabled
17:44:01,995 INFO SettingsFactory:118 - Default entity-mode: pojo
17:44:01,995 INFO SettingsFactory:118 - Named query checking : enabled
17:44:02,042 INFO SessionFactoryImpl:118 - building session factory
17:44:02,042 DEBUG SessionFactoryImpl:97 - Session factory constructed with filter configurations : {}
17:44:02,042 DEBUG SessionFactoryImpl:97 - instantiating session factory with properties: {java.vendor=Sun Microsystems Inc., sun.java.launcher=SUN_STANDARD, hibernate.connection.url=jdbc:oracle:thin:@server:1521:sid, sun.management.compiler=HotSpot Client Compiler, hibernate.ejb.discard_pc_on_close=false, hibernate.transaction.flush_before_completion=false, os.name=Windows XP, hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver, java.vm.vendor=Sun Microsystems Inc., hibernate.dialect=org.hibernate.dialect.Oracle9Dialect, java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition, hibernate.archive.autodetection=false, , hibernate.cache.use_second_level_cache=false, file.encoding=windows-1252, hibernate.use_identifier_rollback=false, java.specification.version=1.5, hibernate.show_sql=true}
17:44:02,464 DEBUG AbstractEntityPersister:97 - Static SQL for entity: org.hibernate.test.annotations.id.Cat
17:44:02,464 DEBUG AbstractEntityPersister:97 - Version select: select CAT_ID from CAT where CAT_ID =?
17:44:02,464 DEBUG AbstractEntityPersister:97 - Snapshot select: select cat_.CAT_ID, cat_.NAME as NAME0_ from CAT cat_ where cat_.CAT_ID=?
17:44:02,464 DEBUG AbstractEntityPersister:97 - Insert 0: insert into CAT (NAME, CAT_ID) values (?, ?)
17:44:02,464 DEBUG AbstractEntityPersister:97 - Update 0: update CAT set NAME=? where CAT_ID=?
17:44:02,464 DEBUG AbstractEntityPersister:97 - Delete 0: delete from CAT where CAT_ID=?
17:44:02,557 DEBUG EntityLoader:97 - Static select for entity org.hibernate.test.annotations.id.Cat: select cat0_.CAT_ID as CAT1_0_0_, cat0_.NAME as NAME0_0_ from CAT cat0_ where cat0_.CAT_ID=?
17:44:02,557 DEBUG EntityLoader:97 - Static select for entity org.hibernate.test.annotations.id.Cat: select cat0_.CAT_ID as CAT1_0_0_, cat0_.NAME as NAME0_0_ from CAT cat0_ where cat0_.CAT_ID=?
17:44:02,557 DEBUG EntityLoader:97 - Static select for entity org.hibernate.test.annotations.id.Cat: select cat0_.CAT_ID as CAT1_0_0_, cat0_.NAME as NAME0_0_ from CAT cat0_ where cat0_.CAT_ID=? for update
17:44:02,557 DEBUG EntityLoader:97 - Static select for entity org.hibernate.test.annotations.id.Cat: select cat0_.CAT_ID as CAT1_0_0_, cat0_.NAME as NAME0_0_ from CAT cat0_ where cat0_.CAT_ID=? for update nowait
17:44:02,557 DEBUG EntityLoader:97 - Static select for entity org.hibernate.test.annotations.id.Cat: select cat0_.CAT_ID as CAT1_0_0_, cat0_.NAME as NAME0_0_ from CAT cat0_ where cat0_.CAT_ID=? for update nowait
17:44:02,573 DEBUG EntityLoader:97 - Static select for action ACTION_MERGE on entity org.hibernate.test.annotations.id.Cat: select cat0_.CAT_ID as CAT1_0_0_, cat0_.NAME as NAME0_0_ from CAT cat0_ where cat0_.CAT_ID=?
17:44:02,573 DEBUG EntityLoader:97 - Static select for action ACTION_REFRESH on entity org.hibernate.test.annotations.id.Cat: select cat0_.CAT_ID as CAT1_0_0_, cat0_.NAME as NAME0_0_ from CAT cat0_ where cat0_.CAT_ID=?
17:44:02,573 DEBUG SessionFactoryObjectFactory:97 - initializing class SessionFactoryObjectFactory
17:44:02,573 DEBUG SessionFactoryObjectFactory:97 - registered: 4028801b1308c9b0011308c9b28d0000 (unnamed)
17:44:02,573 INFO SessionFactoryObjectFactory:118 - Not binding factory to JNDI, no JNDI name configured
17:44:02,573 DEBUG SessionFactoryImpl:97 - instantiated session factory
17:44:02,573 DEBUG SessionFactoryImpl:97 - Checking 0 named HQL queries
17:44:02,573 DEBUG SessionFactoryImpl:97 - Checking 0 named SQL queries
17:44:02,667 DEBUG SessionImpl:97 - opened session at timestamp: 11812634426
17:44:02,667 DEBUG JDBCTransaction:97 - begin
17:44:02,667 DEBUG ConnectionManager:97 - opening JDBC connection
17:44:02,667 DEBUG DriverManagerConnectionProvider:76 - total checked-out connections: 0
17:44:02,667 DEBUG DriverManagerConnectionProvider:76 - using pooled JDBC connection, pool size: 0
17:44:02,667 DEBUG JDBCTransaction:97 - current autocommit status: true
17:44:02,667 DEBUG JDBCTransaction:97 - disabling autocommit
17:44:02,667 DEBUG JDBCContext:76 - after transaction begin
17:44:02,682 DEBUG IdentifierValue:76 - id unsaved-value strategy UNDEFINED
17:44:02,682 DEBUG AbstractSaveEventListener:76 - transient instance of: org.hibernate.test.annotations.id.Cat
17:44:02,682 DEBUG DefaultPersistEventListener:76 - saving transient instance
17:44:02,682 DEBUG AbstractSaveEventListener:97 - generated identifier: 0, using strategy: org.hibernate.id.Assigned
17:44:02,682 DEBUG AbstractSaveEventListener:76 - saving [org.hibernate.test.annotations.id.Cat#0]
17:44:02,698 DEBUG IdentifierValue:76 - id unsaved-value strategy UNDEFINED
17:44:02,698 DEBUG AbstractSaveEventListener:76 - transient instance of: org.hibernate.test.annotations.id.Cat
17:44:02,698 DEBUG DefaultPersistEventListener:76 - saving transient instance
17:44:02,698 DEBUG AbstractSaveEventListener:97 - generated identifier: 0, using strategy: org.hibernate.id.Assigned
17:44:02,698 DEBUG AbstractSaveEventListener:76 - saving [org.hibernate.test.annotations.id.Cat#0]
17:44:02,698 DEBUG AbstractEntityManagerImpl:97 - mark transaction for rollback
javax.persistence.PersistenceException: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [org.hibernate.test.annotations.id.Cat#0]
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:630)
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:219)
at org.hibernate.test.annotations.id.VetTest.createCat(VetTest.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:645)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:479)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:715)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
at org.testng.TestRunner.runWorkers(TestRunner.java:673)
at org.testng.TestRunner.privateRun(TestRunner.java:620)
at org.testng.TestRunner.run(TestRunner.java:480)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:278)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:273)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:253)
at org.testng.SuiteRunner.run(SuiteRunner.java:168)
at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:987)
at org.testng.TestNG.runSuitesLocally(TestNG.java:951)
at org.testng.TestNG.run(TestNG.java:719)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:122)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
Caused by: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [org.hibernate.test.annotations.id.Cat#0]
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:168)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
at org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:49)
at org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:131)
at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:87)
at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38)
at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:618)
at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:592)
at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:596)
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:213)
... 27 more
17:44:02,698 INFO SessionFactoryImpl:118 - closing
17:44:02,714 INFO DriverManagerConnectionProvider:118 - cleaning up connection pool: jdbc:oracle:thin:@server:1521:sid
===============================================
Custom suite
Total tests run: 1, Failures: 1, Skips: 0
===============================================
Process finished with exit code 0
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
18 years
[Hibernate-JIRA] Created: (HHH-2159) Query that previously worked in 3.2.0CR2 does not work anymore
by Andy Dale (JIRA)
Query that previously worked in 3.2.0CR2 does not work anymore
---------------------------------------------------------------
Key: HHH-2159
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2159
Project: Hibernate3
Type: Bug
Versions: 3.2.0.ga
Environment: hibernate 3.2.0GA, PostgreSQL 8.1.4 (using build 407 of the JDBC driver). JDK 1.5.0_06, JBoss 4.0.4GA, Operating system is Fedora Core 5
Reporter: Andy Dale
Attachments: hibernate_testcase.tar.gz
First off i do not know if this bug belongs to the Hibernate3(core) or Hibernate EntityManger branch, but have entered it against core because that is where the exception occurs (in org.hibernate.hql.ast.tree.FromClause.findIntendedAliasedFromElementBasedOnCrazyJPARequirements).
I have a relativley simple entity setup up to test a proof of concept. Persisting the data to the database is not a problem in the new version 3.2.0.GA, but the problems occurs when trying to perform a query on the persisted data, the very same query works with 3.2.0CR2 but gives a nullPointException in 3.2.0GA.
I have attached the java source for the entities + session bean (in hibernate_testcase.tar.gz/entities file) and the java class (in hibernate_testcase.tar.gz/service file) that is used to persist and query the data, and because this was only meant to be a proof of concept i have also included the .ear archive as apart from the entity definitions and session bean the only other thing it contains is a JBoss .sar archive which calls the static persist and query methods in the session bean (service test.testcase). Please note to use the .ear archive you need a datasource called Postgres_Test
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
18 years
[Hibernate-JIRA] Created: (HHH-2852) usefull error messages, for instance when schema validation fails
by Eirik Maus (JIRA)
usefull error messages, for instance when schema validation fails
-----------------------------------------------------------------
Key: HHH-2852
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2852
Project: Hibernate3
Issue Type: New Feature
Components: core
Affects Versions: 3.2.0.ga
Reporter: Eirik Maus
Error messages from Hibernate should contain sufficient amount of details to make it possible to locate the problem.
Using hibernate in a large project is a mixed blessing. It does indeed save you from a lot of difficult and tedious work when everything is okay, but errors during startup are almost impossible to locate due to lack of detail. See for instance the following startup error:
[blah, blah, blah .... could not start .... exception ...blah, blah, blah,...]
Caused by:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateSessionFactory' defined in class path resource [applicationContext-blankett.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Wrong column type: utstedt_dato, expected: date
Caused by:
org.hibernate.HibernateException: Wrong column type: utstedt_dato, expected: date
at org.hibernate.mapping.Table.validateColumns(Table.java:251)
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1007)
at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:116)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:317)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1218)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:807)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:740)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:131)
at no.bbs.common.hibernate.HibernateSessionFactoryBean.afterPropertiesSet(HibernateSessionFactoryBean.java:121)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1062)
.....
I have 3 different hibernate datasources, 8 different *.hbm.xml files from 5 different domain-logic modules, containing in all 9 different columns with that name. Some 15-20 people make modifications to the code base and mappings regularly. It is not so easy to find out who to ask about this problem from the error message provided. Thanks to spring I get an idea of which datasource that failed to start: it prints out which bean that failed creation and where it was defined. Still, it doesn't help me to pinpoint the problem. Why doesn't Configuration even print out which table it is trying to validate? Spending lots of time trying to track down such errors is truly a waste. All the required information was available inside hibernate at the time of the problem, only it wasn't printed out to the user.
Other error messages in hibernate are sometimes poor, too, but this is probably the worst.
At least Configuration must print out the following info:
* table name and mapped class (fully qualified name)
* column name and expected data type (as it does today)
* The URL (or, at least, file name) of the mapping file defining the "problem"
* ... or something else for other sources of mapping info (like annotations), I have no idea what,
Also, the following should really be printed as well
* actual data type found in the schema
* datasource URL
* datasource user name
(The hibernate developers should look to tapestry for how to make deverloper-friendly error diagnostics. A lot of bad things can be (is) said about that project and its leaders, but at least they provide really really nice error messages that directly points out your error so you don't have to spend hours and hours trying to analyze/guess what and where things went wrong)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
18 years
[Hibernate-JIRA] Created: (HHH-2211) A createQuery() caused ORA-00904 error
by sodia (JIRA)
A createQuery() caused ORA-00904 error
--------------------------------------
Key: HHH-2211
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2211
Project: Hibernate3
Type: Bug
Components: query-hql
Versions: 3.2.0.ga
Environment: JDK1.5.0+Eclipse3.2.1+Hibernate3.2.0.ga+Oracle9.2.0+WinXp(Prof)Sp2
Reporter: sodia
Priority: Trivial
Attachments: hiber-grammar-sql-and-errlog.zip, hiber-grammar-test.zip
I want to try the following sql under hibernate,it failed.
(The project is build on the basis of hibernate3.2's tutorial)
String hqlAlias =
"insert into EventHistory ( id, date, title )" +
" select id, date, title from Event e" +
" where e.title like 'BUY%'" +
" and exists" +
" ( select 1 from PersonEvent p" +
" where p.id=e.id)";
int resultAlias = session.createQuery(hqlAlias).executeUpdate();
But it works nice under sqlplus.
INSERT INTO EVENTS_HISTORY
SELECT * FROM EVENTS
WHERE TITLE LIKE 'BUY%'
AND EXISTS
( SELECT 1 FROM PERSON_EVENT
WHERE EVENT_ID=EVENTS.EVENT_ID);
The 4 lines of error log is like this:
15:33:29,906 DEBUG SQL:393 - insert into EVENTS_HISTORY ( EVENT_ID, EVENT_DATE, title ) select event0_.EVENT_ID as col_0_0_, event0_.EVENT_DATE as col_1_0_, event0_.title as col_2_0_ from EVENTS event0_ where (event0_.title like 'BUY%') and (exists (select 1 from PERSON_EVENT personeven1_ where personeven1_.EVENT_ID=EVENTS.EVENT_ID))
Hibernate: insert into EVENTS_HISTORY ( EVENT_ID, EVENT_DATE, title ) select event0_.EVENT_ID as col_0_0_, event0_.EVENT_DATE as col_1_0_, event0_.title as col_2_0_ from EVENTS event0_ where (event0_.title like 'BUY%') and (exists (select 1 from PERSON_EVENT personeven1_ where personeven1_.EVENT_ID=EVENTS.EVENT_ID))
15:33:29,984 WARN JDBCExceptionReporter:71 - SQL Error: 904, SQLState: 42000
15:33:29,984 ERROR JDBCExceptionReporter:72 - ORA-00904: "EVENTS"."EVENT_ID": 无效的??符
Is there any wrong with the hql,or it's alias?
Thanks to anyone who pay attetion to this trivial question which I search the forum and google without solutions.
Or if I missed them,I would be grateful that you might tell me where can I find the right answer to fix this hql grammar error.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
18 years
[Hibernate-JIRA] Created: (HHH-2110) Proxied object causes ClassCastException when method returns 'this' in a composite hierarchy
by Philip Nightingale (JIRA)
Proxied object causes ClassCastException when method returns 'this' in a composite hierarchy
--------------------------------------------------------------------------------------------
Key: HHH-2110
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2110
Project: Hibernate3
Type: Bug
Components: core
Versions: 3.0.5
Environment: Hibernate 3, any database (test case uses HSQL, issue found using Oracle)
Reporter: Philip Nightingale
Attachments: HibernateClassCastExceptionTest.zip
If a proxied object has a method that returns 'this' and the proxy type extends the same base class as the target object and the return type of the method is the target class type then a ClassCastException is thrown.
The error can be tracked down to the method CGLibLazyInitializer::intercept(Object, Method, Object[], MethodProxy).
In this method, if the object returned from the method call on the target object is the same as the target object, then instead of returning the object itself the proxy is returned. This is fine in most cases, but in the special case described, in which the proxy extends a base class that is also extended by the target class, then the CCE occurs.
In the submitted test case I have a simple composite hierarchy with an abstract base type and two concrete subtypes. Either type can contain children, but only one can be the root of the hierarchy (and cannot itslef be a child). There is a many-to-one relationship defined from the sub-type that may be a child to the base class.
The submitted test case is configured to use Hypersonic DB so hsqldb.jar is required on the classpath.
Further details and code snippets from the original code that caused the exception are posted on the Hibernate user forum (topic "ClassCastException with CGLIB Lazy Initialization")
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
18 years