当我尝试执行以下操作SQL时MySQL,我收到错误:
SQL:
SQL = "CREATE TABLE Ranges (";
SQL += "ID varchar(20) NOT NULL, ";
SQL += "Descriptions longtext NULL, ";
SQL += "Version_Number int NULL, ";
SQL += "Row_Updated bigint NULL, ";
SQL += "Last_Updated datetime NULL, ";
SQL += "XML longtext NULL, ";
SQL += "PRIMARY KEY (ID)";
SQL += ") " + "TYPE = InnoDB";
Run Code Online (Sandbox Code Playgroud)
错误:
您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在"TYPE = InnoDB"附近使用正确的语法
但是,如果我删除"TYPE = InnoDB",那么查询工作正常.
以前查询工作正常,即在MySQL 5.0.但是当我升级到时MySQL 5.6,我收到了上述错误.
任何建议/替代方案...... …
MySQL 8是否有Hibernate方言?或者我应该使用Hibernate附带的org.hibernate.dialect.MySQL57Dialect?我正在使用hibernate 5.2.16
在这里记录这个因为我只是浪费了一个小时试图解决这个问题.
我有一个实体Foo:
@ManyToOne(optional = false)
@JoinColumn(name = "barId")
private Bar bar;
Run Code Online (Sandbox Code Playgroud)
为什么Hibernate不在foo.bar - > bar.id上创建外键约束?
我想使用这个类在我的数据库上创建新表
@Entity
@Table(name = "currency_rate")
public class CurrencyRate {
@Id
private String id;
@Column(name = "source_currency")
private String sourceCurrency;
@Column(name = "target_currency")
private String targetCurrency;
@Column(name = "exchange_rate")
private double exchangeRate;
@Column
private Date date;
@PrePersist
public void generateID() {
this.id = this.date.toString().replace("-", "") + sourceCurrency + targetCurrency;
}
//getters, setters
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用属性运行我的应用程序时
spring.jpa.hibernate.ddl-auto=create
Run Code Online (Sandbox Code Playgroud)
我得到了这个例外
引起:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:指定的键太长;最大密钥长度为 1000 字节
好像不能用 Spring 作为我的 ID?将类型更改为 Long 可以解决问题,但我真的很想将 String 与这个一起使用。从我搜索的内容来看,它应该是完全可行的。
我正在将 @Transactional 与 spring boot 和 jpa 一起使用。但它不起作用。有人可以帮忙吗。
我的插入在 myDAO 中,它在服务类中自动装配。下面的代码是实现服务接口的服务类的方法
class MyService implements Service {
@Transactional(rollbackFor = RuntimeException.class)
public ResponseVO createOrder(params) {
myDAO.insertInTable1(param);
myDAO.insertInTable2(param);//I kept wrong table name in this query such that it throws exception
}
}
Run Code Online (Sandbox Code Playgroud) mysql ×4
hibernate ×2
java ×2
jpa ×2
spring ×2
mysql-5.0 ×1
mysql-5.6 ×1
spring-boot ×1
spring-data ×1
sql ×1