<!--@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'。此处只允许使用常量、表达式或变量。不允许使用列名。
在此上下文中不允许使用 '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
SQLServer关键字冲突解决方案
本文介绍了在使用SQLServer过程中遇到的两个实体定义问题:使用Boolean类型及实体属性名为PERCENT时产生的关键字冲突,并提供了相应的解决办法。
7795

被折叠的 条评论
为什么被折叠?



