首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate从Server表创建pojo类时将“NVARCHAR”转换为“可序列化”

Hibernate从Server表创建pojo类时将“NVARCHAR”转换为“可序列化”
EN

Stack Overflow用户
提问于 2015-08-26 10:24:46
回答 2查看 1.7K关注 0票数 2

我正在使用Hibernate 4.3从Server表创建POJO类和映射文件。但它正在创建所有的'nvarchar‘字段’可序列化‘。我希望他们是‘字符串’类型。

在我的reveng.xml文件里我提到-

代码语言:javascript
复制
<type-mapping>
    <sql-type jdbc-type="NVARCHAR" hibernate-type="string" />
    <sql-type jdbc-type="VARCHAR" hibernate-type="string" />
</type-mapping>

但帮不上忙。

我的反向工程文件是-

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate     Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd">
 <hibernate-reverse-engineering>  
<schema-selection match-catalog="Copy_Up-Tourism" match-schema="dbo"/>
 <type-mapping>
    <sql-type jdbc-type="NVARCHAR" hibernate-type="string" />
    <sql-type jdbc-type="VARCHAR" hibernate-type="string" />
</type-mapping>
<table-filter match-name="Contents"/>
 <table-filter match-name="CategoryDatas"/>
<table-filter match-name="TileExperience"/>
<table-filter match-name="PushTypes"/>
<table-filter match-name="DestinationDatas"/>
<table-filter match-name="PlaceDatas"/>
<table-filter match-name="EventDatas"/>
<table-filter match-name="YoutubeVideoTag"/>
<table-filter match-name="PushManagers"/>
<table-filter match-name="Activities"/>
<table-filter match-name="Languages"/>
<table-filter match-name="Categories"/>
</hibernate-reverse-engineering>

我尝试了许多类似于Link的解决方案,但是没有帮助。请帮帮忙

EN

回答 2

Stack Overflow用户

发布于 2015-08-26 10:58:20

请做以下工作:

改变这一点:

代码语言:javascript
复制
<sql-type jdbc-type="NVARCHAR" hibernate-type="string" />

对此:

代码语言:javascript
复制
<sql-type jdbc-type="NVARCHAR" hibernate-type="java.lang.String" />

添加您的jdbc.properties文件:

对于oracle

代码语言:javascript
复制
hibernatetool.metadatadialect=org.hibernate.cfg.reveng.dialect.OracleMetaDataDialect 

对其他人而言:

H2MetaDataDialect方言用于处理H2数据库中的调整

使用标准JDBC读取元数据的JDBCMetaDataDialect方言

使用mysql读取元数据的MySQLMetaDataDialect方言

然后像往常一样表演:

  1. maven ->更新
  2. 清洁/重建项目
票数 3
EN

Stack Overflow用户

发布于 2016-06-24 09:25:50

我的收入文件就像

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd">
<hibernate-reverse-engineering>
    <type-mapping>
        <sql-type jdbc-type="NVARCHAR" hibernate-type="string" />
    </type-mapping>
    <table-filter match-name="TempTable"/>
</hibernate-reverse-engineering>

POJO创建了

代码语言:javascript
复制
public class TempTable  implements java.io.Serializable {


     private int tempId;
     private String data;

    public TempTable() {
    }


    public TempTable(int tempId) {
        this.tempId = tempId;
    }
    public TempTable(String data) {
       this.data = data;
    }

    public int getTempId() {
        return this.tempId;
    }

    public void setTempId(int tempId) {
        this.tempId = tempId;
    }
    public String getData() {
        return this.data;
    }

    public void setData(String data) {
        this.data = data;
    }
}

结论只需加

代码语言:javascript
复制
 <type-mapping>
        <sql-type jdbc-type="NVARCHAR" hibernate-type="string" />
 </type-mapping>

若要收入文件:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32224054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档