smartclient 持有对象的引用

 

现在做的系统,牵扯到对象持有另一个对象的概念,在数据库设计表结构时:table 1 中持有table 2  ,简单画一个图吧 便于理解:

Table 1

        Id_1 (pk)

        projId

        projStatusId

        userGrop

 

Table 2

        projStatusId(pk)

        name

        Description

在表中的体现是:table1 持有table2的 projStatusId,但是在页面显示中,table1的projStatusId要显示对应的name。

 

在modul层中我们这样写:

    privateTable2table2;

在配置文件xml

    <many-to-onename=" table2"column="ProjStatusId"lazy="false"fetch="join"/>   

当前台发生请求时,被持有的对象以这种形式传递到后台:

projItemSumLineStatus{"lineStatusId":0,"name":"Created","description":null}

看着怪怪的呢,是个字符串。字符串啊字符串字符串。

1 在做修改的时候,遇到了问题

我用到了这个注解:@ModelAttribute("newmoldheadinfo")

想着吧前台的对象传递过来交给hibernate去处理,就没事了,但是出现了异常

是类型转换的异常,说无法将string类型转换成object类型,smartclient传递过来的参数都是string类型的。Hibernate 怎么处理持有对象的解析呢,

其他的字段都正常,就是那个持有的字段报错。

这是修改中所遇到的问题。

2 查询功能

查出来的信息也是以jason格式显示的  如"projItemSumPEStatus":{"projEndStatusId":0,"name":"","description":null},

projStatusId在页面上显示对应的name的话 很简单 :

{name:"projEndStatusId",title:"ProjStatusId",valueXPath:"projItemSumPEStatus/projEndStatusId"},
 {name:"name",title:"ProjStatusName",valueXPath:"projItemSumPEStatus/name"}, 
{name:"description",title:"ProjStatusDescription",valueXPath:"projItemSumPEStatus/description"}
乱七八糟的,等我想到解决方法了,再好好整理吧 ^_^

 

如果被持有的对象的ID为0 的话,在被持有对象的配置文件中添加  unsaved-value="-1"

 

     <id name="projEndStatusId" column="ProjEndStatusId"unsaved-value="-1">

           <generator class="native" />

       </id>

 

你可能感兴趣的:(数据库,Hibernate,String,object,table,null)