不管你的关联怎么复杂,但仔细看上去就很简单了,你的也就下面这几种关系
A和B表有关联
B和C表有关联
C和D表有关联
看上去复杂,其实不管你怎么复杂,你就和有关联的表进行配置了,
配置可以简单的分成两种,
第一种,存在主从关系的,
第二种,不存在主从关系,只是关联条件进行数据的查询。
那么以上两种情况的配置是不一样的。
对于以上你的表关系,你只要在A表配置和B表的关系(当然配置的是pojo类和hbm.xml文件)
B表配置和C表的关系,C表配置和D表的关系,这样不就简单了。对于怎么样配置主从表,和两个表之间关联查询,需要查询另外一个表的字段,配置方法可以参照我的blog,里面讲了这两种方法。
http://blog.csdn.net/tcmis对于你说的查询A表的数据,把其它表的数据都查询出来了,占用内存,这个是Hibernate有这样一个机制,就是关联表的数据加载方式,它可以延迟加载,那样就等于只加载A表的数据,不会影响什么的,但是你要用Struts去显示B,C,D的数据的时候,那么lazy属性必须是false。
A和B表有关联
B和C表有关联
C和D表有关联
看上去复杂,其实不管你怎么复杂,你就和有关联的表进行配置了,
配置可以简单的分成两种,
第一种,存在主从关系的,
第二种,不存在主从关系,只是关联条件进行数据的查询。
那么以上两种情况的配置是不一样的。
对于以上你的表关系,你只要在A表配置和B表的关系(当然配置的是pojo类和hbm.xml文件)
B表配置和C表的关系,C表配置和D表的关系,这样不就简单了。对于怎么样配置主从表,和两个表之间关联查询,需要查询另外一个表的字段,配置方法可以参照我的blog,里面讲了这两种方法。
http://blog.csdn.net/tcmis对于你说的查询A表的数据,把其它表的数据都查询出来了,占用内存,这个是Hibernate有这样一个机制,就是关联表的数据加载方式,它可以延迟加载,那样就等于只加载A表的数据,不会影响什么的,但是你要用Struts去显示B,C,D的数据的时候,那么lazy属性必须是false。
解决方案 »
- 关于hibernate的many to many(由one to many 与 many to one组成) 关系
- 高分。。。请教关于httpwatch的问题。。。高分
- 新钶信息系统(深圳)有限公司这个公司明天要我去面试,这个公司如何啊!来者有分,在线等啊!
- jsp分页中碰到的sqlserver语句问题?
- 求解:hibernate的简单问题
- jbpm的流程图如何在web页面上显示
- 菜鸟问题!
- XML解析非法字符问题,有什么好办法可以解决?100分救命啊!!!
- 一个简单的问题:如何用Struts注销用户登录?
- 请问在weblogic6.1下配置struts,有什么特殊的配置需要吗??
- 如何使用JavaMail大批量发送邮件?
- 如何配置Seasar
比如说,A表是操作日志,B表是操作员。C表是操作员的角色。
在A表中记录了操作员ID,因此,A表每条记录的ID可以对应到B表的一个操作员。B表每个记录就有一个ROLEID对应于C表的一个角色。
在STRUTS显示时,我想返回一个日志列表(假设有100条),每条里面包含着一个操作员,操作员里又包含着若干角色?
但是,我其实仅仅要显示列表及操作员名称而已,搞这么麻烦?
操作日志表(A)
---------------------------
id 序号
content 日志内容
operationid 操作员ID操作员表(B)
--------------------------
id 序号
name 操作员名称默认情况下hibernate会自动生成下面的pojo类和hbm.xml文件
public abstract class AbstractA implements java.io.Serializable {
private String id;
private String content;
private String operationid;
// 你需要在A表中增加一个字段,set/get方法都需要,
private B b;
.....
get/set method
....}public class A extends AbstractA implements java.io.Serializable { public A() {
}
/** full constructor */
public A(....省了...) {
super(id, content, operationid);
}
}..B表省略然后在A.hbm.xml文件中配置
<many-to-one
name="b"
class="com.package.B"
fetch="select"
lazy="false"
insert="false"
update="false"
>
<column name="operationid" length="32" />
</many-to-one>你可以在struts里面用下面方法显示名称了。<bean:write name="element" property="b.name"/>