数据表表名或字段名为SQL关键字时Hibernate解决方案

原创 2015年11月18日 13:49:09

问题:当实体指定的表名或字段名为SQL关键字时,hibernate建表失败。

解决方法有三种:

一、将表名或字段名用方括号([])括起来。

xml配置:

<property name="desc" type="string" > 
<column name="[DESC]" length="255" not-null="true" /> 
</property>


注解:

@Column(name = "[DESC]", nullable = false) 
public String getDesc() { return this.desc; }


二、将表名或字段名用两个重音符号(`)括起来

重音符号键即是键盘上“1”键左边的、“Tab”键上边的那个键。此符号亦被称为“反向引号”。

xml配置:

<property name="desc" type="string" > 
<column name="`DESC`" length="255" not-null="true" /> 
</property>

注解:

@Column(name = "`DESC`", nullable = false) 
public String getDesc() { return this.desc; }

三、将表名或字段名用双引号(")括起来

xml配置:

<property name="desc" type="string" > 
<column name='"DESC"' length="255" not-null="true" />
 </property>


注解:

@Column(name = "\"DESC\"", nullable = false) 
public String getDesc() { return this.desc; }


Hibernate错误记录,困扰了哥很久,竟然是表名是数据库中的一个关键字

Struts Problem Report Struts has detected an unhandled exception: Messages: ??? 'User...
  • wwj_748
  • wwj_748
  • 2013年03月04日 19:39
  • 6149

hibernate学习笔记5---实体类或属性名与数据库关键字冲突、hql命名参数、hql实现通用分页

一、实体类或属性名与数据库关键字冲突问题 1、实体类名与数据库中的关键字冲突 比如:实体表User与oracle中的系统表冲突 解决方式1:在xml中添加table属性,指定表名,使其不与nam...
  • Hollboy
  • Hollboy
  • 2013年05月22日 21:00
  • 5078

Hibernate 保存Mysql含有关键字处理方式

Hibernate框架往数据库插入数据,含有关键字快速解决方式

hibernate中使用数据库关键字(保留字)

在hibernate中,当一个实体对象使用了数据库保留字作为字段名称(虽说不推荐,但少数情况下必须使用),执行保存操作时,你可能会遇到如下错误。 ERROR JDBCExceptionRepor...

Hibernate&MySQL——Group是关键字,在使用Hibernate时不能将其作为表名

在写程序时,由于需要用到“分组”类,故随手写了Group作为类名(坑!)。在之后使用Hibernate自动建表时,报错:Caused by: org.hibernate.tool.schema.spi...

hibernate 映射文件 当表名或字段名与数据库关键字冲突 该如何解决?

映射文件如下:[html] view plain copy

Hibernate中查询表名、字段名以及字段类型等信息

Hibernate中查询表名、字段名以及字段类型等信息的工具类package com.lmb.ui.util;import org.hibernate.cfg.Configuration; impor...
  • lmb55
  • lmb55
  • 2016年04月27日 21:20
  • 1547

hibernate生成表时候,注意不能使用mysql关键字和保留字(比如order)

问题: 今天在用hibernate建一张订单表的时候遇到了一个问题,订单的信息表始终无法创建,莫名其妙,最后发现和sql语句的关键字冲突了。现在分享一下。 报错信息如下:(指的sql语句语法错误) ...

解决使用SQL关键字作为列名引起的sql异常场景

例如有下面一个表结构: 由于在创建的时候不小心使用了group字段,插入的时候就遇到了这个问题 详细信息是: 2016-11-21 14:58:51,494 [http-bio-80...

mysql中表名为关键字的处理方法

这是一条简单sql语句,向order表里插入数据。看到哪里错了吗? INSERT INTO order VALUES ('1471', 'go-1471-1-3340'); 执行的时候会报错...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据表表名或字段名为SQL关键字时Hibernate解决方案
举报原因:
原因补充:

(最多只允许输入30个字)