hibernate集合映射的问题
使用hibernate4注解的形式.
我现在有一个附件表,表中存有图片位置,链接,文档位置等信息.对应实体 Link.class
现在我又有一个对象, 里面包含两个属性,分别是一个一对一的映射,和一个一对多的映射,指向这个附件表.这时候我可以用一个@OneToOne,和一个@OneToMany来映射.
1. @OneToOne(targetEntity=Link.class , cascade={CascadeType.ALL}
2. @OneToMany(targetEntity=Link.class , cascade={CascadeType.ALL} , fetch = FetchType.EAGER , orphanRemoval = true)
@Fetch(FetchMode.SUBSELECT)
@ JoinTable (name = "LINK_REF",joinColumns=@JoinColumn(name="ID1"),inverseJoinColumns=@JoinColumn(name = "ID2"))
但是.一方面,我想数据库美观,第二,我想知道这个附件到底有没有其它对象在引用.所以我想将一对一的映射也表现在这个中间表中.
则将上面的一对一映射改为
@OneToOne(targetEntity=Link.class , cascade={CascadeType.ALL}
@ JoinTable (name = "LINK_REF",joinColumns=@JoinColumn(name="ID1"),inverseJoinColumns=@JoinColumn(name = "ID2"))
现在问题出来了.
由于@JoinTable使用主键作为关键,显然.我这个一对一和一对多的两个映射在一个对象中, 也就是主键是一样的,当查询时就出现的混乱.这时候我就需要中间表映射不使用主键,而是另外自动创建一个字段来完成映射 , 另外我想在这个中间表中,加一个字段,表明这个映射是由哪一个类中映射过来的.
查了好多资料,都没有完成.(国内用不了Google蛋疼)
我现在有一个附件表,表中存有图片位置,链接,文档位置等信息.对应实体 Link.class
现在我又有一个对象, 里面包含两个属性,分别是一个一对一的映射,和一个一对多的映射,指向这个附件表.这时候我可以用一个@OneToOne,和一个@OneToMany来映射.
1. @OneToOne(targetEntity=Link.class , cascade={CascadeType.ALL}
2. @OneToMany(targetEntity=Link.class , cascade={CascadeType.ALL} , fetch = FetchType.EAGER , orphanRemoval = true)
@Fetch(FetchMode.SUBSELECT)
@ JoinTable (name = "LINK_REF",joinColumns=@JoinColumn(name="ID1"),inverseJoinColumns=@JoinColumn(name = "ID2"))
但是.一方面,我想数据库美观,第二,我想知道这个附件到底有没有其它对象在引用.所以我想将一对一的映射也表现在这个中间表中.
则将上面的一对一映射改为
@OneToOne(targetEntity=Link.class , cascade={CascadeType.ALL}
@ JoinTable (name = "LINK_REF",joinColumns=@JoinColumn(name="ID1"),inverseJoinColumns=@JoinColumn(name = "ID2"))
现在问题出来了.
由于@JoinTable使用主键作为关键,显然.我这个一对一和一对多的两个映射在一个对象中, 也就是主键是一样的,当查询时就出现的混乱.这时候我就需要中间表映射不使用主键,而是另外自动创建一个字段来完成映射 , 另外我想在这个中间表中,加一个字段,表明这个映射是由哪一个类中映射过来的.
查了好多资料,都没有完成.(国内用不了Google蛋疼)
...全文
相关推荐
hibernate在集合上的lazy策略
**Hibernate集合映射**:介绍如何在映射文件或注解中配置集合的懒加载,如`@OneToMany(lazy = FetchType.LAZY)`或`<set lazy="true">`。2.
Hibernate多对多的映射
测试可以帮助我们发现潜在的问题,确保业务逻辑的正确性。总结,Hibernate的多对多映射是实现复杂数据库关系的关键特性,理解并熟练掌握其配置和操作方法,对于提升Java企业级应用的开发效率至关重要。
hibernate bag 集合映射
**操作示例**:如何在Java代码中添加、删除和查询bag集合中的元素。通过以上信息,我们可以深入了解Hibernate的bag集合映射,包括其配置、使用以及可能遇到的问题。
Hibernate延迟加载介绍.doc
《Hibernate延迟加载详解》Hibernate作为Java领域中的一个强大的对象关系映射框架,提供了许多优化数据库操作的策略,其中之一便是延迟加载(Lazy Loading)。
hibernate的多种映射关系
理解并熟练掌握这些映射关系对于高效地使用 Hibernate 进行数据库操作至关重要。正确配置映射关系能够提升应用程序的性能和可维护性,避免出现不必要的 N+1 查询问题,并简化数据库交互的复杂性。


高性能WEB开发
