关于hibernate 3.3 JPA注解 关联查询的问题

[复制链接]
查看11 | 回复1 | 2011-8-24 04:30:47 | 显示全部楼层 |阅读模式
我现在都是想单项关联,用得是hibernate3.3JPA注解,A实体可以找到B实体,但是不要B实体中的seta实体查出来。实例代码如下:实体RmEncoder对于rmCameras是一对多的关系,对于rmSystemaddress实体是多对以关系。@Entity@Table(name=\"RM_ENCODER\",schema=\"JCMMP\")publicclassRmEncoderimplementsjava.io.Serializable{//FieldsprivateStringid;privateRmSystemaddressrmSystemaddress;privateSetRmCamerarmCameras=newHashSetRmCamera(0);//Constructors/**defaultconstructor*/publicRmEncoder(){}//Propertyaccessors@GenericGenerator(name=\"generator\",strategy=\"uuid.hex\")@Id@GeneratedValue(generator=\"generator\")@Column(name=\"ID\",unique=true,nullable=false)publicStringgetId(){returnthis.id;}publicvoidsetId(Stringid){this.id=id;}@ManyToOne(fetch=FetchType.LAZY)@JoinColumn(name=\"ADDRESS\")publicRmSystemaddressgetRmSystemaddress(){returnthis.rmSystemaddress;}publicvoidsetRmSystemaddress(RmSystemaddressrmSystemaddress){this.rmSystemaddress=rmSystemaddress;}@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy=\"rmEncoder\")publicSetRmCameragetRmCameras(){returnthis.rmCameras;}publicvoidsetRmCameras(SetRmCamerarmCameras){this.rmCameras=rmCameras;}}实体RmSystemaddress:@Entity@Table(name=\"RM_SYSTEMADDRESS\",schema=\"JCMMP\")publicclassRmSystemaddressimplementsjava.io.Serializable{//FieldsprivateStringid;privateSetRmEncoderrmEncoders=newHashSetRmEncoder(0);privateSetRmCamerarmCameras=newHashSetRmCamera(0);//Constructors/**defaultconstructor*/publicRmSystemaddress(){}//Propertyaccessors@GenericGenerator(name=\"generator\",strategy=\"uuid.hex\")@Id@GeneratedValue(generator=\"generator\")@Column(name=\"ID\",unique=true,nullable=false)publicStringgetId(){returnthis.id;}publicvoidsetId(Stringid){this.id=id;}@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy=\"rmSystemaddress\")publicSetRmEncodergetRmEncoders(){returnthis.rmEncoders;}publicvoidsetRmEncoders(SetRmEncoderrmEncoders){this.rmEncoders=rmEncoders;}@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy=\"rmSystemaddress\")publicSetRmCameragetRmCameras(){returnthis.rmCameras;}publicvoidsetRmCameras(SetRmCamerarmCameras){this.rmCameras=rmCameras;}}现在我想查询RmEncoder只想获取到rmSystemaddress里面的属性,不要再拿到rmSystemaddress实体中的rmEncoders集合,但是可以RmEncoder可以获取到rmCameras集合,有办法没?
回复

使用道具 举报

千问 | 2011-8-24 04:30:47 | 显示全部楼层
首先将fetch都设置成FetchType.LAZY,然后dao中做查询的时候,如果用了spring,就用hibernateTemplate.initialize(rmEncoder.getRmCameras())这样来加载,想加载那个集合,就填那个集合
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行