2015-04-06 78 views
2

IM的使用Hibernate内置Wildfly 8.0安装的H2数据库,但它失败,出现以下错误信息:使用JPA的使用Hibernate wildfly创建表使用JPA上创建表失败

所致:javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException:在 org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1763) 无法准备 声明在 org.hibernate.jpa。 spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677) at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1683) 在 org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1187) 在 org.jboss.as.jpa .container.AbstractEntityManager.persist(AbstractEntityManager.java:581) at test.mdb.MessageDRivenBean.onMessage(MessageDRivenBean.java:41) at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) [:1.7.0_67] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_67] at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7。 0_67] org.jboss.as.ee.c omponent.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52) 在 org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 在 org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) 在 org.jboss.as.ee.component.interceptors.UserInterceptorFactory $ 1.processInvocation(UserInterceptorFactory.java:63) 在 org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 在 组织。 jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) at org.jboss.as.ee.component.interceptors.UserIntercept orFactory $ 1.processInvocation(UserInterceptorFactory.java:63) 在 org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 在 org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor的.java:43) 在 org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 在 org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45) 在 org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) at org.jboss.invocation.InitialInterceptor.processInvocation(Initia lInterceptor.java:21) 在 org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 在 org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) 在 org.jboss .as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53) 在 org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309) 在 org.jboss.as.ejb3.component .pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext。Java的:org.hibernate.exception.SQLGrammarException:309) 在 org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:251) ... 49由多个在引起 无法准备语句 org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:123) 在 org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49) 在 org.hibernate.engine.jdbc .spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl $ StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:196) 在 org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement(StatementPreparerImpl.java:122) 在 org.hibernate.id.IdentityGenerator $ GetGeneratedKeysDelegate.prepare(IdentityGenerator.java:89) 在 org.hibernate作为.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:55) 在 org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3032) 在 org.hibernate.persister.entity.AbstractEntityPersister.insert (AbstractEntityPersister.java:3558) at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:98) 在org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:490) 在 org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:195) 在 org.hibernate.engine。 spi.ActionQueue.addInsertAction(ActionQueue.java:179) 在 org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:214) 在 org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener。的java:324) 在 org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:288) 在 org.hibernate.event.internal.Abstrac tSaveEventListener.performSave(AbstractSaveEventListener.java:194) 在 org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:125) 在 org.hibernate.jpa.event.internal.core.JpaPersistEventListener.saveWithGeneratedId( JpaPersistEventListener.java:84) 在 org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:206) 在 org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:149) 在 org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:75) at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:811) at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:784) at org.hibernate.internal.SessionImpl.persist(SessionImpl.java :org.h2.jdbc.JdbcSQLException::789) 在 org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1181) ... 74通过多个致Tabelle “JPA_USER” nicht gefunden表“ JPA_USER“未找到; SQL语句: 插入到JPA_User(employeeId,first_name,last_name,salary) values(null,?,?,?)[42102-173] at org.h2.message.DbException.getJdbcSQLException(DbException.java:331) at org.h2.message.DbException.get(DbException。java:171)at org.h2.message.DbException.get(DbException.java:148)at org.h2.command.Parser.readTableOrView(Parser.java:4864)at org.h2.command.Parser。 readTableOrView(Parser.java:4842)在 org.h2.command.Parser.parseInsert(Parser.java:974)在 org.h2.command.Parser.parsePrepared(Parser.java:375)在 org.h2。 org.h2.command.Parser.parse(Parser.java:251)at org.h2.command.Parser.prepareCommand(Parser.java:218)at (org.h2.command.Parser.parse(Parser.java:290)at org.h2.engine.Session.prepareLocal(Session.java:428)at org.h2.engine.Session.prepareCommand(Session.java:377)at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java: 1138) 在org.h2.jdbc.JdbcPreparedStatement。(JdbcPreparedStatement.java:70) 在 org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:267) 在 org.h2.jdbc.JdbcConnection.prepareStatement( JdbcConnection.java:1076) 在 org.jboss.jca.adapters.jdbc.WrappedConnection.prepareStatement(WrappedConnection.java:500) 在 org.hibernate.engine.jdbc.internal.StatementPreparerImpl $ 2.doPrepare(StatementPreparerImpl.java :124) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl $ StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:186) ... 96更多

19:15:33694 WARN [org.hornetq.core.server](线程18 (HornetQ的服务器-HornetQServerImpl :: serverUUID = 61b6684a-d6bb-11e4-926e-d9ecaa9f5457-1830325086)) HQ222149:消息 参考资料[55834575461]:可靠:ServerMessage [messageID = 55834575461,耐用= true,userID = 885a963a-dc80-11e4-be97-a7b41dae907c,优先级= 4, bodySize = 256,过期= 0,耐用=真, 地址= jms.queue.demoQueue,properties = TypedProperties [__ HQ_CID = 8842c877-dc80-11e4-be97-a7b41dae907c]] @ 400257444 已达到最大发送次数,并将其发送至死信 解决jms.queue中的jms.queue.DLQ问题。 demoQueue

该问题似乎与行表“JPA_USER”未找到相关联; SQL语句:

insert into JPA_User (employeeId, first_name, last_name, salary) 
values (null, ?, ?, ?) [42102-173] 

,但我想JPA创建该表对我来说 我的persistence.xml如下所示:使用默认的数据源,这与H2数据库相关联

<persistence version="2.1" 
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> 
<persistence-unit name="ExampleDS"> 
<jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source> 
<properties> 
     <property name="hibernate.hbm2dll.auto" value="create"/> 
     <property name="hibernate.connection.username" value="sa"/> 
     <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/> 
     <property name="hibernate.connection.password" value="sa"/> 
     <property name="hibernate.show_sql" value="true"/> 
     <property name="hibernate.format_sql" value="true"/> 
    </properties> 
</persistence-unit> 
</persistence> 

IM。

有谁知道这里的问题可能是什么?

回答

2

你属性名称不正确。它是ddl而不是dll

<property name="hibernate.hbm2ddl.auto" value="create"/> 
+0

非常感谢你,我忽略了这一点! :) – user3314097