Java “连接”;计算机数据库jpa“;使用MySQL播放2.1示例应用程序

Java “连接”;计算机数据库jpa“;使用MySQL播放2.1示例应用程序,java,mysql,playframework,playframework-2.1,Java,Mysql,Playframework,Playframework 2.1,我正在使用PlayFramework2.1示例应用程序。当我使用内存中的H2数据库时,一切正常,但当我想将应用程序与MySQL连接时,我遇到了问题 有些人有同样的问题(),但没有解决办法 我添加了mysql连接器(Build.scala): 并编辑了application.conf: db.default.url="jdbc:mysql://password:user@localhost/my-database" db.default.driver=com.mysql.jdbc.Driver

我正在使用PlayFramework2.1示例应用程序。当我使用内存中的H2数据库时,一切正常,但当我想将应用程序与MySQL连接时,我遇到了问题

有些人有同样的问题(),但没有解决办法

我添加了mysql连接器(Build.scala):

并编辑了application.conf:

db.default.url="jdbc:mysql://password:user@localhost/my-database"
db.default.driver=com.mysql.jdbc.Driver
当我启动应用程序并应用1.sql(进化脚本)时,我得到一个错误:

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 'sequence company_seq
start with 1000' at line 1 [ERROR:1064, SQLSTATE:42000]
有人知道如何解决这个问题吗?

我找到了解决办法-

evolution脚本中使用的语法与MySQL不一致:

将计算机数据库示例应用程序从H2移植到mysql所需的更改列表 conf/evolutions/default/1.sql
  • 添加engine=innodb,以启用引用完整性
  • 将序列替换为id字段的自动增量
  • 将“设置引用完整性”命令替换为“设置外键检查”
  • 将时间戳字段替换为日期时间
conf/evolutions/default/2.sql
  • 在2.sql和3.sql文件之间分割计算机数据(避免在mysql上运行的evolutions中出现错误)
models/models.scala
  • 已从Computer.list sql查询中删除“nulls last”
  • 修改Computer.insert以跳过id字段(因为由mysql自动分配)
因为我在玩
Java
而不是
Scala
版本,所以我想更改
Company.Java
Computer.Java
文件。我添加了
@GeneratedValue
注释:

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public Long id;

在这里你可以找到修改过的进化脚本:

我也有同样的问题。看起来这个行为在剧中没有记录!框架文件。感谢您的解释。我在使用@GeneratedValue(strategy=GenerationType.SEQUENCE,generator=“device\u gen”)时遇到了相同的问题,我将其更改为@GeneratedValue(strategy=GenerationType.IDENTITY)
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public Long id;