[Hibernate-JIRA] Created: (HHH-4553) Hibernate doesn't support official JPA2 escape char for table name
by Julien HENRY (JIRA)
Hibernate doesn't support official JPA2 escape char for table name
------------------------------------------------------------------
Key: HHH-4553
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-4553
Project: Hibernate Core
Issue Type: Bug
Affects Versions: 3.5.0-Beta-2
Environment: Oracle 9i
Derby
Reporter: Julien HENRY
One of the table of my schema is named FUNCTION. As it is a reserved name with Derby (used for my JUnit tests), I have escaped the table name to make it works with Derby (as specified by JPA2 spec $2.13):
@Entity
@Table(name="\"FUNCTION\"")
public class Function {
//...
}
My JUnit tests are working fine, then I tried to connect to my Oracle DB, and I have enabled schema validation:
<property name="hibernate.hbm2ddl.auto" value="validate"/>
But I got an exception as Hibernate is looking for a table with name "FUNCTION" in Oracle metadata.
Caused by: org.hibernate.HibernateException: Missing table: "FUNCTION"
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1153) [hibernate-core-3.5.0-Beta-2.jar:3.5.0-Beta-2]
at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:139) [hibernate-core-3.5.0-Beta-2.jar:3.5.0-Beta-2]
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:364) [hibernate-core-3.5.0-Beta-2.jar:3.5.0-Beta-2]
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1367) [hibernate-core-3.5.0-Beta-2.jar:3.5.0-Beta-2]
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:858) [hibernate-annotations-3.5.0-Beta-2.jar:3.5.0-Beta-2]
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:733) [hibernate-entitymanager-3.5.0-Beta-2.jar:3.5.0-Beta-2]
This is not specific to Oracle, because when I change:
<property name="hibernate.hbm2ddl.auto" value="create"/>
by
<property name="hibernate.hbm2ddl.auto" value="validate"/>
in my JUnit tests, I have the same issue with the embedded Derby DB.
Using Hibernate specific ` as quote works fine:
@Entity
@Table(name="`FUNCTION`")
public class Function {
//...
}
The issue can be easily fixed in Table.setName(String name). Replace:
if ( name.charAt( 0 ) == '`' ) {
by
if ( name.charAt( 0 ) == '"' ) {
or if you want to keep backward compatibility:
if ( name.charAt( 0 ) == '`' || name.charAt( 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
15 years
[Hibernate-JIRA] Created: (HHH-3271) Prepare Statement Caching
by lalit railwani (JIRA)
Prepare Statement Caching
-------------------------
Key: HHH-3271
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3271
Project: Hibernate3
Issue Type: Bug
Components: core
Affects Versions: 3.2.5
Environment: Hibernate 3.2.5, Oracle 10g
Reporter: lalit railwani
We are using Hibernate 3.2.5 are trying to evaluate hibernate batching vis a vis JDBC batching.
As per our results the hibernate batching takes approx 2 times the time taken by JDBC batching.
The problem is we need to commit the batches also so in a loop we are commiting the transaction also (batching).
But for every new loop hibernate creates new prepared statements i.e. if we have 20 batches 20 prepared statements per table/entity are being created but in case of JDBC the same can be done using 1 prepared statement per table/entity.
Hibernate does reuse the prepared statements within a batch but not across batches. If hibernate can reuse these statements it would significantly reduce the timings and would bring the hibernate batching close to jdbc batching.
This is happening even after enabling prepare statement caching in the hibernate cfg xml.
--
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
15 years