[Hibernate-JIRA] Created: (HHH-7172) Allow use of <generator> with <key-property>
by Miguel Diaz (JIRA)
Allow use of <generator> with <key-property>
--------------------------------------------
Key: HHH-7172
URL: https://hibernate.onjira.com/browse/HHH-7172
Project: Hibernate ORM
Issue Type: Improvement
Components: core
Affects Versions: 4.1.1, 3.6.10
Reporter: Miguel Diaz
Hibernate annotations supports the automatic generation of some of the identifier properties, as explained in section 5.1.2.4 "Partial identifier generation" of the documentation: ??Simply use the @GeneratedValue annotation on one or several id properties??.
The issue is that there is no equivalence with XML mapping: the <key-property> element doesn't allow a <generator> child.
Note that Issue 2060 (https://hibernate.onjira.com/browse/HHH-2060) solved the problem of having a <generator> for a <composite-id>, but not for a <key-property>.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 3 months
[Hibernate-JIRA] Created: (HHH-7159) Database keywords causes failure of some tests in org.hibernate.test.collection.custom
by Zbyněk Roubalík (JIRA)
Database keywords causes failure of some tests in org.hibernate.test.collection.custom
--------------------------------------------------------------------------------------
Key: HHH-7159
URL: https://hibernate.onjira.com/browse/HHH-7159
Project: Hibernate ORM
Issue Type: Bug
Components: testsuite
Affects Versions: 4.1.1
Reporter: Zbyněk Roubalík
Priority: Minor
Keywords 'USER' and 'VALUES' are reserved on many databases.
* *org.hibernate.test.collection.custom.basic.UserCollectionTypeAnnotationsVariantTest.testBasicOperation*
{quote}
org.hibernate.exception.SQLGrammarException: Incorrect syntax near the keyword 'User'.
Stacktrace
org.hibernate.exception.SQLGrammarException: Incorrect syntax near the keyword 'User'.
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:122)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129)
at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
at $Proxy32.executeUpdate(Unknown Source)
at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:56)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2849)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3290)
at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:88)
at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:362)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:354)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:275)
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:326)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1104)
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:315)
at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)
at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)
at org.hibernate.test.collection.custom.basic.UserCollectionTypeTest.testBasicOperation(UserCollectionTypeTest.java:55)
{quote}
* *org.hibernate.test.collection.custom.parameterized.ParameterizedUserCollectionTypeAnnotationsVariantTest.testBasicOperation*
{quote}
org.hibernate.exception.SQLGrammarException: Incorrect syntax near the keyword 'values'.
Stacktrace
org.hibernate.exception.SQLGrammarException: Incorrect syntax near the keyword 'values'.
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:122)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129)
at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
at $Proxy32.executeUpdate(Unknown Source)
at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:56)
at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1204)
at org.hibernate.action.internal.CollectionRecreateAction.execute(CollectionRecreateAction.java:58)
at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:362)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:354)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:279)
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:326)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1104)
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:315)
at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)
at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)
at org.hibernate.test.collection.custom.parameterized.ParameterizedUserCollectionTypeTest.testBasicOperation(ParameterizedUserCollectionTypeTest.java:52)
{quote}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 3 months
[Hibernate-JIRA] Created: (HHH-7171) ClassCastException due to EntityType.toLoggableString calling EntityPersister.getIdentifier on a proxy
by Anders Wallgren (JIRA)
ClassCastException due to EntityType.toLoggableString calling EntityPersister.getIdentifier on a proxy
------------------------------------------------------------------------------------------------------
Key: HHH-7171
URL: https://hibernate.onjira.com/browse/HHH-7171
Project: Hibernate ORM
Issue Type: Bug
Components: core
Affects Versions: 4.1.1
Reporter: Anders Wallgren
With debug logging enabled, EntityType.toLoggableString ends up being called on a proxied entity. toLoggableString calls getIdentifier without first checking for a proxy (as other code in the EntityType class do). The result is a ClassCastException when the tuplizer getIdentifier method attempts to invoke a method from an abstract class on a proxy:
{code}
org.springframework.orm.hibernate4.HibernateSystemException: IllegalArgumentException occurred calling getter of com.electriccloud.domain.AbstractEntity.id; nested exception is org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of com.electriccloud.domain.AbstractEntity.id
at org.springframework.orm.hibernate4.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:206) ~[spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.orm.hibernate4.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:606) ~[spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at com.electriccloud.hibernate4.TransactionManagerImpl.convertHibernateAccessException(TransactionManagerImpl.java:45) ~[ec-hibernate4-1.0.0-SNAPSHOT.jar:]
at org.springframework.orm.hibernate4.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:488) ~[spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754) ~[spring-tx-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723) ~[spring-tx-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393) ~[spring-tx-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at com.electriccloud.transaction.TransactionAspectImpl.withTransaction(TransactionAspectImpl.java:211) ~[ec-transaction-1.0.0-SNAPSHOT.jar:]
at com.electriccloud.deploy.dao.transaction.DeployTransactionAspect.withTransaction(DeployTransactionAspect.java:30) ~[deploy-dao-1.0.0-SNAPSHOT.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_31]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_31]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_31]
at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_31]
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at com.electriccloud.deploy.rest.ApplicationController$$EnhancerByCGLIB$$b2458e5d.list(<generated>) ~[cglib-2.2.2.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_31]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_31]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_31]
at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_31]
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) ~[spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) ~[spring-web-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) ~[spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) ~[spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) ~[spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) ~[spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) ~[spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) ~[spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) [spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) [spring-webmvc-3.1.1.RELEASE.jar:3.1.1.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:735) [servlet-api-3.0.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) [servlet-api-3.0.jar:na]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:594) [jetty-servlet-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:485) [jetty-servlet-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) [jetty-server-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:521) [jetty-security-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233) [jetty-server-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065) [jetty-server-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:412) [jetty-servlet-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192) [jetty-server-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999) [jetty-server-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) [jetty-server-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250) [jetty-server-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149) [jetty-server-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111) [jetty-server-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.server.Server.handle(Server.java:351) [jetty-server-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:451) [jetty-server-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:916) [jetty-server-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:634) [jetty-http-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230) [jetty-http-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:76) [jetty-server-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:609) [jetty-io-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:45) [jetty-io-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599) [jetty-util-8.1.0.v20120127.jar:8.1.0.v20120127]
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534) [jetty-util-8.1.0.v20120127.jar:8.1.0.v20120127]
at java.lang.Thread.run(Thread.java:662) [na:1.6.0_31]
Caused by: org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of com.electriccloud.domain.AbstractEntity.id
at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:187) ~[hibernate-core-4.1.1.Final-PATCH1.jar:4.1.1.Final-PATCH1]
at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:341) ~[hibernate-core-4.1.1.Final-PATCH1.jar:4.1.1.Final-PATCH1]
at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:4273) ~[hibernate-core-4.1.1.Final-PATCH1.jar:4.1.1.Final-PATCH1]
at org.hibernate.type.EntityType.toLoggableString(EntityType.java:507) ~[hibernate-core-4.1.1.Final-PATCH1.jar:4.1.1.Final-PATCH1]
at org.hibernate.internal.util.EntityPrinter.toString(EntityPrinter.java:79) ~[hibernate-core-4.1.1.Final-PATCH1.jar:4.1.1.Final-PATCH1]
at org.hibernate.internal.util.EntityPrinter.toString(EntityPrinter.java:121) ~[hibernate-core-4.1.1.Final-PATCH1.jar:4.1.1.Final-PATCH1]
at org.hibernate.event.internal.AbstractFlushingEventListener.logFlushResults(AbstractFlushingEventListener.java:131) ~[hibernate-core-4.1.1.Final-PATCH1.jar:4.1.1.Final-PATCH1]
at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:107) ~[hibernate-core-4.1.1.Final-PATCH1.jar:4.1.1.Final-PATCH1]
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51) ~[hibernate-core-4.1.1.Final-PATCH1.jar:4.1.1.Final-PATCH1]
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1127) ~[hibernate-core-4.1.1.Final-PATCH1.jar:4.1.1.Final-PATCH1]
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:325) ~[hibernate-core-4.1.1.Final-PATCH1.jar:4.1.1.Final-PATCH1]
at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101) ~[hibernate-core-4.1.1.Final-PATCH1.jar:4.1.1.Final-PATCH1]
at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175) ~[hibernate-core-4.1.1.Final-PATCH1.jar:4.1.1.Final-PATCH1]
at org.springframework.orm.hibernate4.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:480) ~[spring-orm-3.1.1.RELEASE.jar:3.1.1.RELEASE]
... 57 common frames omitted
Caused by: java.lang.IllegalArgumentException: java.lang.ClassCastException@332b25db
at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_31]
at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_31]
at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:164) ~[hibernate-core-4.1.1.Final-PATCH1.jar:4.1.1.Final-PATCH1]
... 70 common frames omitted
{code}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 3 months