Java Hibernate生成的SQL错误
有人知道为什么Hibernate生成的SQL查询是错误的吗?我尝试使用实体中的属性Java Hibernate生成的SQL错误,java,mysql,hibernate,Java,Mysql,Hibernate,有人知道为什么Hibernate生成的SQL查询是错误的吗?我尝试使用实体中的属性hibernate.hbm2ddl.auto=create drop和columnDefinition自动从实体创建一个表,以设置默认值。运行该程序时,出现以下错误: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax t
hibernate.hbm2ddl.auto
=create drop
和columnDefinition
自动从实体创建一个表,以设置默认值。运行该程序时,出现以下错误:
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 '`varchar(100) default '-'`,
`last_name` varchar(100), primary key (`id'
以下是生成的SQL查询:
create table `user` (
`id` bigint not null auto_increment,
`first_name` `varchar(100) default '-'`,
`last_name` varchar(64),
primary key (`system_id`)
)
当然,这是错误的,Hibernate在实体中添加了一个记号字符(`),用于翻译columnDefinition
,下面是实体类:
@Entity
@Table(name = UserEntity.TABLE_NAME)
public class UserEntity implements Serializable {
public static final String TABLE_NAME = "user";
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
@Column(name = "first_name", columnDefinition="varchar(100) default '-'")
private String firstName;
@Column(name = "last_name", length = 100)
private String lastName;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
maven中的从属关系:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.10.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.6.10.Final</version>
</dependency>
mysql
mysql连接器java
5.1.30
org.hibernate
冬眠核心
3.6.10.最终版本
org.hibernate
休眠实体管理器
3.6.10.最终版本
如果有人遇到同样的问题并得到解决方案,请告诉我。谢谢你的帮助。评论上的链接帮助了我。问题是在我的hibernate配置中,删除这一行可以修复它
<property name="hibernate.globally_quoted_identifiers">true</property>
true