求教一个ORM的设计问题?

liwenqiu 2006-12-29 03:39:43
在hibernate或ibatis中,一般都是一个对象对应于数据表中的一条记录,但是有时候只需要数据表中某个或某些字段的数据,不需要全部字段的数据都读出来,这种时候应该如何设计数据对象比较合适呢?
...全文
319 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeshucheng 2007-01-21
  • 打赏
  • 举报
回复
不经常用的可以考虑把表分拆成1:1
一旦要动到通过ID带过来,这样可以加大效率
heipn 2007-01-20
  • 打赏
  • 举报
回复
这和你映射文件有关关系,如果这个字段在表中没有特殊约束,比如非空什么的,你在相应的XML文件把这些字段的定义描述取掉,再根据改的XML文件生成PO就可以了.其实HIBERNATE是根据这个XML生成的SQL语句!
liufei8463 2007-01-18
  • 打赏
  • 举报
回复
赞成cm4ever(小P[Fly Away]) 说的
cubit 2007-01-10
  • 打赏
  • 举报
回复
关系模式:
Tree(NodeId,NodeName,ParentNodeId)

描述:
数据表Tree,有NodeId,NodeName,ParentNodeId三个字段。
其中NodeId为表的主键,ParentNodeId为表的外键。

表关系为:NodeId_ParentNodeId

请问这样的关系在Hibernate里如何写映射文件?
sacrefies 2007-01-10
  • 打赏
  • 举报
回复
使用 <SubSelect> 吧
arrowkylin 2007-01-05
  • 打赏
  • 举报
回复
两种方式,一种是直接查询字段,如:
select entity.fld0,entity.fld1... from Entity entity
此时得到的是一个对象数组(Object[]);
你也可以直接将要查询的字段传入一个值对象,在页面显示:
select new ValueObject(entity.fld0,entity.fld1...) from Entity entity
此时要注意ValueObject必须有相应的构造函数
禽兽v5 2007-01-05
  • 打赏
  • 举报
回复
取出记录中所有字段没什么的,这点系统开销可以忽略不计。

one-to-many倒值得加lazy节省一把。
tonyzhangcn 2006-12-30
  • 打赏
  • 举报
回复
1.hibernate 可以设置忽略某一字段的(也可以设置多个,一个一个设置)。(hibernate中的Example.excludeProperty方法)
2.作一个动态的sql,sql选择需要的字段,然后自己解析这些字段值。(hibernate中的projection和dynamic instantiation)
junit777 2006-12-30
  • 打赏
  • 举报
回复
不管需要不需要,都要搞个全的
廖雪峰 2006-12-30
  • 打赏
  • 举报
回复
select new Cat(id, name) from Cat cat

然后你必须定义一个构造方法 public Cat(int id, String name)
chszs 2006-12-29
  • 打赏
  • 举报
回复
把需要的数据字段打包成一个Bean,用对象的方式来操作。
alin19 2006-12-29
  • 打赏
  • 举报
回复
再绑一个小对象到同一张表
liwenqiu 2006-12-29
  • 打赏
  • 举报
回复
我的意思是最好能数据对象不包括不需要的数据字段,对象中也没有getXXX这个字段的方法
syoumei 2006-12-29
  • 打赏
  • 举报
回复
select cat.mate from Cat cat
zzd8310 2006-12-29
  • 打赏
  • 举报
回复
帮你顶
适合人群: 1、具有一定Python语言基础,有一定的web前端基础,想要深入学习Python Web框架的朋友; 2、学习完“跟着王进老师学开发Python篇”“跟着王进老师学Web前端开发”的朋友; 3、有Django基础,但是想学习企业级项目实战的朋友; 4、喜欢 Django 框架并想深入研究的朋友; 5、有一定的数据库基础   课程目标:本系列课程是从零基础开始并深入讲解Django,最终学会使用Django框架开发企业级的项目。课程知识点全网最详细,项目实战贴近企业需求。本系列课程除了非常详细的讲解Django框架本身的知识点以外,还讲解了web开发中所需要用到的技术,学完本系列课程后,您将独立做出一个具有后台管理系统,并且前端非常优美实用的网站。   课程内容:在人工智能大行其道的时代,许多开发者对Python这门编程语言都比较熟悉。但是如何用它实现一个企业级别的项目,可能许多朋友还存在一些困惑。联科教育“跟着王进老师学Python”系列课程是专门针对想要从事Python Web开发的朋友而准备的,并且按照企业需求的标准定制的学习路线。学习路线中包含Python基础和进阶、Web前端、MySQL数据库、Flask和Django框架以及N多个企业真实项目。在学习完本系列中所有的课程后,从前端页面的实现,到后台代码的编写,再到数据库的管理,一人可以搞定一个公司网站的事情,掌握实现全栈开发,让你升职加薪不是梦! 本季课程介绍了Django中ORM模型,使用ORM模型的优势;Django中ORM模型常用的字段,ORM实现数据查询;Django后台管理等。所有应用均通过案例“在线图书商城”完成讲解和演示,完整项目,贯穿全部知识点,边学边练,帮助大家快速掌握知识,了解企业要求。

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧