[Hibernate-JIRA] Created: (EJB-379) org.hibernate.exception.SQLGrammarException when trying to delete THIS where THIS.relation[manyToOne].member=:givenMember
by Martin Makundi (JIRA)
org.hibernate.exception.SQLGrammarException when trying to delete THIS where THIS.relation[manyToOne].member=:givenMember
-------------------------------------------------------------------------------------------------------------------------
Key: EJB-379
URL: http://opensource.atlassian.com/projects/hibernate/browse/EJB-379
Project: Hibernate Entity Manager
Issue Type: Bug
Affects Versions: 3.3.2.GA
Environment: MySQL 5 or newer
Reporter: Martin Makundi
Priority: Critical
The delete fails and throws org.hibernate.exception.SQLGrammarException when trying to issue delete:
createQuery("DELETE FROM "
+ TheClassIWantToDelete.class.getSimpleName() + " mhl WHERE "
+ "mhl.theBridgingClass.theSelectingClass=:theSelectingClass"
+ " AND (mhl.value=0 OR mhl.value IS NULL)")
.setParameter("theSelectingClass", theSelectingClass);
I have three Entities:
@Entity
public class TheClassIWantToDelete{
@Id Long id;
@ManyToOne(optional=false)
private TheBridgingClass theBridgingClass;
@Column
private Integer value;
...
}
@Entity
public class TheBridgingClass{
@Id Long id;
@ManyToOne(optional=false)
private TheSelectingClass theSelectingClass;
...
}
@Entity
public class TheSelectingClass{
@Id Long id;
...
}
The result is (trace):
Hibernate: delete from TheClassIWantToDelete, TheBridgingClass theBridgingCl1_ where theSelectingClass_id=? and (value=0 or value is null)
2008-08-31 12:00:00,912 59846 [btpool0-3] ERROR JDBCExceptionReporter - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where theSelectingClass_id=5 and (value=0 or value is null)' at line 1
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute update query
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:637)
at org.hibernate.ejb.QueryImpl.executeUpdate(QueryImpl.java:58)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute update query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:84)
at org.hibernate.hql.ast.QueryTranslatorImpl.executeUpdate(QueryTranslatorImpl.java:396)
at org.hibernate.engine.query.HQLQueryPlan.performExecuteUpdate(HQLQueryPlan.java:259)
at org.hibernate.impl.SessionImpl.executeUpdate(SessionImpl.java:1141)
at org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:94)
at org.hibernate.ejb.QueryImpl.executeUpdate(QueryImpl.java:49)
... 38 more
Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where project_id=5 and (monthlyHoursLimit=0 or monthlyHoursLimit is null)' at line 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1268)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1541)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1455)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1440)
at org.hibernate.hql.ast.exec.BasicExecutor.execute(BasicExecutor.java:75)
... 43 more
--
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
16 years, 4 months
[Hibernate-JIRA] Created: (HHH-2723) Problem manipulating CLOB column Oracle 10G
by Priya Venkatesan (JIRA)
Problem manipulating CLOB column Oracle 10G
-------------------------------------------
Key: HHH-2723
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2723
Project: Hibernate3
Issue Type: Bug
Affects Versions: 3.2.1
Reporter: Priya Venkatesan
When trying to insert successive records with CLOB column throws java.sql.BatchUpdateException: ORA-01400: cannot insert NULL error.
Steps to reproduce:
1.Create a object with CLOB mapped to string dataType
2.Set CLOB value (any value > 4000 chars)
3.Call session.save on the object
4.Create another object and do not set the CLOB column value.
5.Call session.save on the object.
--> Returns error
Hibernate: insert into JXPTEST (name, cost, thingSize, type, lastupdate, lockToken, id2, longField, booleanField, doubleField, clobField, ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2007-07-04 10:42:52,855 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.type.StringType - binding 'name' to parameter: 1
2007-07-04 10:42:52,855 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.type.BigDecimalType - binding '999' to parameter: 2
2007-07-04 10:42:52,855 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.type.IntegerType - binding '1' to parameter: 3
2007-07-04 10:42:52,855 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.type.StringType - binding 'gold' to parameter: 4
2007-07-04 10:42:52,855 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.type.DateType - binding '04 July 2007' to parameter: 5
2007-07-04 10:42:52,855 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.type.StringType - binding '4c22dc2f138e21f301139253d0a700f9' to parameter: 6
2007-07-04 10:42:52,855 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.type.StringType - binding null to parameter: 7
2007-07-04 10:42:52,855 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.type.LongType - binding null to parameter: 8
2007-07-04 10:42:52,855 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.type.BooleanType - binding null to parameter: 9
2007-07-04 10:42:52,855 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.type.DoubleType - binding null to parameter: 10
2007-07-04 10:42:52,855 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.type.StringType - binding null to parameter: 11
2007-07-04 10:42:52,855 [[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.type.StringType - binding '4c22dc2f138e21f301139253d0a700fa' to parameter: 12
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
at com.chordiant.persistence.HibernateDataAccess.createPoint(HibernateDataAccess.java:251)
at com.chordiant.persistence.HibernateDataAccess.createSet(HibernateDataAccess.java:266)
at com.chordiant.persistence.SQLDataAccess.createSet(SQLDataAccess.java:1149)
at com.chordiant.persistence.test.JXPTestService.createSet(JXPTestService.java:263)
at com.chordiant.persistence.test.JXPTestService.processRequest(JXPTestService.java:581)
at com.chordiant.service.MasterStatelessServiceBean.processRequest(MasterStatelessServiceBean.java:535)
at com.chordiant.service.GatewayHandler.processRequest(GatewayHandler.java:266)
at com.chordiant.service.ejb.EJBGatewayServiceBean.processRequestObject(EJBGatewayServiceBean.java:171)
at com.chordiant.service.ejb.EJBGatewayServiceCMT_p5ylky_EOImpl.processRequestObject(EJBGatewayServiceCMT_p5ylky_EOImpl.java:132)
at com.chordiant.service.ejb.EJBGatewayServiceCMT_p5ylky_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:517)
at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:224)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:407)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:403)
at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:56)
at weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:934)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
Caused by: java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("CCSOWNER"."JXPTEST"."ID")
----------------------------------------------------------------------------------------------------------------------------
Following is my hibernate mapping file
hibernate-mapping>
<class name="com.chordiant.persistence.test.Thing" table="JXPTEST" lazy="false">
<id name="Id" column="ID" type="string">
<generator class="uuid.hex">
</generator>
</id>
<property name="nameOfAnItemThatHasToBeThisLongToTestTheOperationalBehavior" type="string" column="name" length="80" not-null="true" lazy="false"/>
<property name="cost" type="big_decimal" precision="8" scale="2" not-null="false" lazy="false"/>
<property name="size" type="int" column="thingSize" length="10" not-null="false" lazy="false"/>
<property name="type" type="string" column="type" length="80" not-null="true" lazy="false"/>
<property name="lastUpdate" type="date" column="lastupdate" not-null="false" lazy="false"/>
<property name="lockToken" type="string" column="lockToken" length="128" not-null="false" lazy="false"/>
<property name="id2" type="string" column="id2" length="80" not-null="false" lazy="false"/>
<property name="longField" type="long" column="longField" length="22" not-null="false" lazy="false"/>
<property name="booleanField" type="boolean" column="booleanField" length="1" not-null="false" lazy="false"/>
<property name="doubleField" type="java.lang.Double" column="doubleField" precision="8" scale="2" not-null="false" lazy="false"/>
<property name="clobField" type="string" column="clobField" length="128" not-null="false" lazy="false"/>
</class>
</hibernate-mapping>
--
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
16 years, 4 months