SQL server 数据库中的boolean类型和percent关键字
<!--@import url(scrollbar.css); -->最近在测试SQL Server数据库时,发现两个问题:
1、实体定义中出现Boolean属性的定义,原来系统中的代码类似下面的定义:
@Column(name = "IS_AHEADNOTIFY",columnDefinition="bool default false")
private Boolean aheadNotify;
这种方式在MySql中可以正确工作,但是在SQL Server下会报错,错误如下:
Unsuccessful: create table COMMENT_READ_HISTROY (id int not null, EMP_ID int null, IS_READ bool default false null, READ_TIME datetime null, COMMENT_ID int null, primary key (id))
在此上下文中不允许使用 'false'。此处只允许使用常量、表达式或变量。不允许使用列名。
原因是使用了SQL Server关键字 false。解决办法是:修改成如下代码
@Column(name = "IS_AHEADNOTIFY",columnDefinition="bit default 0")
private Boolean aheadNotify;
2、实体定义中,实体属性名称如果为PERCENT,在SQL Server下也会出现问题,因为PERCENT是SQL Server的关键字
解决办法是修改PERCENT 为 其他名称,如 FINISH_PERCENT
页:
[1]