![](/img/trans.png)
[英]Error using Spring, Play Framework, Hibernate and MySql
[英]Play 2 framework spring data with MySQL
我是Play Framework的新手,我正在嘗試做一個簡單的例子來了解它是如何工作的。 我已經使用模板play-spring-data-jpa開始了。 我想以持久的方式使用MySQL,這就是我選擇它的原因。
我從h2開始了解它是如何工作的,然后嘗試轉向連接到MySQL本地數據庫。
我按照步驟使用https://www.playframework.com/documentation/2.1.0/JavaJPA中的 JPA來獲取持久性單元。
代碼適用於h2,但是當我切換到MySQL時,我收到錯誤。
與數據庫的連接工作正常,因為我收到消息:
[info] play - database [default] connected at jdbc:mysql://localhost/brainUp?useUnicode=yes&characterEncoding=UTF-8&connectionCollation=utf8_general_ci
但是在那個消息之后我得到了以下信息:
[error] o.h.t.h.SchemaUpdate - could not get database metadata
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown table 'sequences' in information_schema
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.7.0_51]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[na:1.7.0_51]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.7.0_51]
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) ~[na:1.7.0_51]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) ~[mysql-connector-java-5.1.18.jar:na]
at com.mysql.jdbc.Util.getInstance(Util.java:386) ~[mysql-connector-java-5.1.18.jar:na]
[error] o.h.t.h.SchemaUpdate - could not complete schema update
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown table 'sequences' in information_schema
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.7.0_51]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[na:1.7.0_51]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.7.0_51]
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) ~[na:1.7.0_51]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) ~[mysql-connector-java-5.1.18.jar:na]
at com.mysql.jdbc.Util.getInstance(Util.java:386) ~[mysql-connector-java-5.1.18.jar:na]
我不太明白這個消息,而且我一直在尋找很長時間,但沒有找到任何能讓我理解正在發生的事情。
提前致謝
謝謝@Krzysiek的興趣。 我再次修改了persistence.xml,發現了錯誤。 我認為你懷疑這是關於定義的方言。
正如我之前使用的是h2,因此方言被定義為而不是MySQL。
這是新的persistence.xml工作正常,以防有人遇到與我相同的問題。
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="default" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<non-jta-data-source>DefaultDS</non-jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
</properties>
</persistence-unit>
</persistence>
我還想為像我這樣的新用戶注意,如果你想從java代碼創建表,你應該設置為create-drop,只是為了使用和編輯存儲的數據,你可能想把它切換到“更新”,創建數據庫時,不再進行結構更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.