相关疑难解决方法(0)

让Hibernate和SQL Server与VARCHAR和NVARCHAR一起玩得很好


我目前正在大型数据库的某些表中启用UTF-8字符.这些表已经是MS-SQL类型的NVARCHAR.另外,我还有几个使用VARCHAR的字段.

Hibernate与JDBC驱动程序的交互存在一个众所周知的问题(参见例如,在hibernate中映射到varchar和nvarchar).简而言之,Hibernate/JDBC生成的SQL将所有字符串作为Unicode传递,而不管底层的SQL类型如何.当数据库中的非unicode(varchar)字段与Unicode输入字符串进行比较时,该列的指示与编码不匹配,因此执行全表扫描.在JDBC驱动程序(JTDS和MS版本)中,有一个参数可以将Unicode字符串作为ASCII传递,但这是一个全有或全无的命题,它不允许将国际字符输入到数据库中.

我在这个问题上看到的大多数帖子都提出了两个解决方案中的一个 - 1)将数据库中的所有内容更改为NVARCHAR或2)设置sendStringParametersAsUnicode = false,我的问题是这个 - 是否有任何已知的解决方案来使用VARCHAR和NVARCHAR一起玩得很好?由于下游依赖性和其他外部问题,我的环境将一切都更改为NVARCHAR 是一个巨大的问题.

java sql-server hibernate jdbc

13
推荐指数
2
解决办法
2万
查看次数

使用 Hibernate 时如何将 Serializable 更改为 String

我正在使用 Hibernate 从 MS SQL 创建实体类。但是随着 NVARCHAR Hibernate 更改为 Serializable 类型。它会产生一些错误,因为当我 CRUD 时 NVARCHAR 和 Serializable 之间发生冲突!

无论如何,当 Hibernate 自动创建实体类时,必须将 Serializable 更改为 String 吗?

抱歉,我的英语技能不好,所以我在这个网站上找不到这个问题的信息。

我正在为 LUNA Eclipse 使用 JBoss 工具,我执行以下步骤:

在此处输入图片说明

在此处输入图片说明

这是 Hibernate 创建后的类

@Entity
@Table(name = "SubMenu1", catalog = "MySite")
public class SubMenu1 implements java.io.Serializable {

private byte id;
private Menu menu;
private Serializable name;

public SubMenu1() {
}

public SubMenu1(byte id, Menu menu) {
    this.id = id;
    this.menu = menu;
}

public SubMenu1(byte id, Menu menu, Serializable name) …
Run Code Online (Sandbox Code Playgroud)

java hibernate

3
推荐指数
1
解决办法
1877
查看次数

标签 统计

hibernate ×2

java ×2

jdbc ×1

sql-server ×1