论坛首页 Java版 Hibernate

提问:数据库中的id转换成页面上的显示内容是的困惑

浏览 3240 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-06-06 关键字: 数据库中的id转换成页面上的显示内容是的困惑

先用个例子说说我的问题。

我要存储一个用户的信息:张波、男,我的困惑在“男”上

我现在的设计是在数据库中用户表中存放的是性别的id,而这个id是代表“男”,还是“女”放在数据字典表中

当我用struts标签展示用户列表的时候,我希望展示的是“男”还是“女”,而不是性别id,这个时候必须做一个连接查询,并且在用户表对应的 entity 类中增加一个属性,来存放从数据库中取出来的在页面上显示的“男”还是“女”。

这是我在用jdbc访问数据库的时候的解决办法,但是这样做我觉得很别扭,在我的设想中,entity 中的属性应该和数据库中的字段一一对应。所以我想请问大家是怎么样解决这个问题的,有没有更好的办法。

最近,刚刚开始使用hibernate,怎么样映射能够轻松的解决这个问题?

 

   
最后更新时间:2007-06-06
偶是把数据字典查询出来,放在request里,然后在页面上循环对比,id相同时就打印字典值
   
0 请登录后投票
最后更新时间:2007-06-06
whistler 写道
偶是把数据字典查询出来,放在request里,然后在页面上循环对比,id相同时就打印字典值
如果是这样,我觉得把数据字典表中相关的数据查询出来后放在HashMap中会更方便些,但是我们所有的项目中都是用pager-taglib.tld来展示列表,分页,所以不太可能象你说的那样做。。
   
0 请登录后投票
最后更新时间:2007-06-06

dengzhangfan 写道:

先用个例子说说我的问题。

我要存储一个用户的信息:张波、男,我的困惑在“男”上

我现在的设计是在数据库中用户表中存放的是性别的id,而这个id是代表“男”,还是“女”放在数据字典表中

当我用struts标签展示用户列表的时候,我希望展示的是“男”还是“女”,而不是性别id,这个时候必须做一个连接查询,并且在用户表对应的 entity 类中增加一个属性,来存放从数据库中取出来的在页面上显示的“男”还是“女”。

这是我在用jdbc访问数据库的时候的解决办法,但是这样做我觉得很别扭,在我的设想中,entity 中的属性应该和数据库中的字段一一对应。所以我想请问大家是怎么样解决这个问题的,有没有更好的办法。

最近,刚刚开始使用hibernate,怎么样映射能够轻松的解决这个问题?

、、、、、、、、、、、、、、、、、、、、、、

 性别也搞个数据字典表 太浪费了吧 直接 0 1表示多简单





   
0 请登录后投票
最后更新时间:2007-06-06
我只是把这个当成一个例子。。事实上一个项目中肯定有大量需要使用数据字典的地方:停用、启用……类似的
   
0 请登录后投票
最后更新时间:2007-06-06
这个其实你用hibernate很好解决啊?
你是不是性别是一张表?

User类可以写:
class User {
   private Long id;
   private Sex sex;
}
class Sex {
   private Long id;
   private String label;
}

在struts中显示的时候你直接写<c:out value="${user.sex.label}"/>不就行了。
不知道能不能解决你的问题。
   
0 请登录后投票
最后更新时间:2007-06-06
dengzhangfan 写道
whistler 写道
偶是把数据字典查询出来,放在request里,然后在页面上循环对比,id相同时就打印字典值
如果是这样,我觉得把数据字典表中相关的数据查询出来后放在HashMap中会更方便些,但是我们所有的项目中都是用pager-taglib.tld来展示列表,分页,所以不太可能象你说的那样做。。

象男女这样的我跟xly_971223是一样处理的
就整个常量类,用 0 1 简单表示
大点的数据字典用我上面提到的方法

你可以在业务层就直接把user的id替换成字典值
   
0 请登录后投票
最后更新时间:2007-06-06
whistler 写道
dengzhangfan 写道
whistler 写道
偶是把数据字典查询出来,放在request里,然后在页面上循环对比,id相同时就打印字典值
如果是这样,我觉得把数据字典表中相关的数据查询出来后放在HashMap中会更方便些,但是我们所有的项目中都是用pager-taglib.tld来展示列表,分页,所以不太可能象你说的那样做。。

象男女这样的我跟xly_971223是一样处理的
就整个常量类,用 0 1 简单表示
大点的数据字典用我上面提到的方法

你可以在业务层就直接把user的id替换成字典值
谢谢myyate的回答
我想我的问题更加麻烦一些,现在项目中采用pager-taglib进行table的展示和封装,在使用的时候之需要指定list,和list中需要显示的对象的属性即可,jsp上面都不知道list中存放的是什么对象。。。我想,我不能直接将数据库中查询出来的list作为显示的list,中间需要做一些转化,我已经有些思路了,不过还是感觉有些别扭。
   
0 请登录后投票
最后更新时间:2007-06-06
这种情况我一般是在entity里处理 多提供个getXxx方法不就好了啊
   
0 请登录后投票
最后更新时间:2007-06-06
_19_ 写道
这种情况我一般是在entity里处理 多提供个getXxx方法不就好了啊


偶尔我也这么干,这就是为什么会有VO这东西!
   
0 请登录后投票
论坛首页 Java版 Hibernate

跳转论坛:
JavaEye推荐