如何在使用Hibernate时将Serializable转换为String [英] How to change Serializable to String when use Hibernate

查看:138
本文介绍了如何在使用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;
私人菜单菜单;
私有序列化名称;
$ b public SubMenu1(){
}

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


public SubMenu1(字节ID,菜单菜单,序列化名称){
this.id = id;
this.menu =菜单;
this.name = name;


@Id
@Column(name =id,unique = true,nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
public byte getId(){
return this.id;
}

public void setId(byte id){
this.id = id;
}

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name =idMenuParent,nullable = false)
public Menu getMenu(){
返回this.menu;
}

public void setMenu(Menu menu){
this.menu = menu;


@Column(name =name)
public Serializable getName(){
return this.name;
}

public void setName(Serializable name){
this.name = name;

我希望Serializable对字符串进行自动更改,我不需要更改我的手

解决方案

编辑您的 hibernate.reveng.xml file& amp ;在文件的< type-mapping> 部分中添加以下条目: -
$ b

 < sql-type jdbc-type =NVARCHARhibernate-type =string/> 

当Hibernate Generation Wizard为您生成类时,它使用 hibernate .reveng.xml 用于类型转换。因此,当生成器遇到 NVARCHAR 数据类型时,它会检查它是否等价于 hibernate数据类型&将其转换为字符串类型。


I'm using Hibernate to create entities class from MS SQL. But with NVARCHAR Hibernate changes to Serializable type. It makes some errors, exeptions because conflict between NVARCHAR and Serializable when I CRUD!

Have anyway to change Serializable to String when Hibernate auto creates entities class?

Sorry, my Eng skills aren't good so I can't find information of this problem in this site.

I'm using JBoss tool for LUNA Eclipse and I do following steps:

This is a class after create by 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) {
    this.id = id;
    this.menu = menu;
    this.name = name;
}

@Id
@Column(name = "id", unique = true, nullable = false)
@GeneratedValue(strategy=GenerationType.AUTO)
public byte getId() {
    return this.id;
}

public void setId(byte id) {
    this.id = id;
}

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "idMenuParent", nullable = false)
public Menu getMenu() {
    return this.menu;
}

public void setMenu(Menu menu) {
    this.menu = menu;
}

@Column(name = "name")
public Serializable getName() {
    return this.name;
}

public void setName(Serializable name) {
    this.name = name;
}

I want Serializable changes to String that do automaticly, i don't need change by my hands

解决方案

Edit your hibernate.reveng.xml file & add the following entry in the <type-mapping> section of the file:-

<sql-type jdbc-type="NVARCHAR" hibernate-type="string"/>

When the Hibernate Generation Wizard will generate the classes for you then it uses hibernate.reveng.xml for type conversion. So when the generator encounter NVARCHAR datatype it check for it's equivalent hibernate data type & convert it into String type.

这篇关于如何在使用Hibernate时将Serializable转换为String的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆