2017-12-20 3 views
0

私はJ2EEの新機能です。 オブジェクトを自分のMySQLデータベースに永続化したいのですが、例外はHyperSQLに関連しています。内部例外:java.sql.SQLSyntaxErrorException:ユーザーに特権がないかオブジェクトが見つかりません:SEQUENCEしかし私はMySQLを使用しています

この私のpersistance.xmlファイルです

<?xml version="1.0" encoding="UTF-8"?> 

<persistence-unit name="learnPU"> 
     <properties> 
      <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/learndb" /> 
      <property name="javax.persistence.jdbc.user" value="root" /> 
      <property name="javax.persistence.jdbc.password" value="xxxxx" /> 
      <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> 
      <property name="hibernate.show_sql" value="true" /> 
      <property name="hibernate.format_sql" value="true" /> 
      <property name="hibernate.hbm2ddl.auto" value="validate" /> 
     </properties> 
</persistence-unit> 

そして、私のポンポンファイルの依存関係

<dependencies> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-web-api</artifactId> 
     <version>7.0</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>5.2.12.Final</version> 
     <type>pom</type> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>6.0.6</version> 
    </dependency> 
</dependencies> 

は、私がHyperSQL接続を宣言したことはありません。

これは、あなたのアプリケーションサーバの(アプリケーションサーバーによって異なります)の管理パネル/コンフィギュレーションファイルにデータソースを定義するために持っているように思えスタックトレース

Caused by: org.hsqldb.HsqlException: user lacks privilege or object not found: SEQUENCE 
at org.hsqldb.error.Error.error(Unknown Source) 
at org.hsqldb.error.Error.error(Unknown Source) 
at org.hsqldb.SchemaManager.getTable(Unknown Source) 
at org.hsqldb.ParserDQL.readTableName(Unknown Source) 
at org.hsqldb.ParserDQL.readRangeVariableForDataChange(Unknown Source) 
at org.hsqldb.ParserDML.compileUpdateStatement(Unknown Source) 
at org.hsqldb.ParserCommand.compilePart(Unknown Source) 
at org.hsqldb.ParserCommand.compileStatement(Unknown Source) 
at org.hsqldb.Session.compileStatement(Unknown Source) 
at org.hsqldb.StatementManager.compile(Unknown Source) 
at org.hsqldb.Session.execute(Unknown Source) 
... 127 more 

答えて

1

です。

だから私の場合TomEEには、あなたはtomeedir/confに/ tomee.xml

<Resource id="learnDB" type="DataSource"> 
    JdbcDriver com.mysql.jdbc.Driver 
    JdbcUrl jdbc:mysql://localhost:3306/learndb 
    UserName root 
    Password ***** 
    JtaManaged true 
    </Resource> 

でそれを行うとlib /デ・フォルダ内のあなたのDBのlibary jarファイルをドロップする必要があります。

persistance.xmlファイルでは、jta-data-sourceを定義します。あなたのリソースIDの名前はどれですか。

<persistence-unit name="learnPU"> 
     <jta-data-source>learnDB</jta-data-source> 
     <exclude-unlisted-classes>false</exclude-unlisted-classes> 
     <properties> 
      <property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/> 
     </properties> 
    </persistence-unit> 
関連する問題