BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #39284同步于 2015/3/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

hibernate使用注解方式实现一对多的映射问题

chenhebing
2015/3/16镜像同步1 回复
在学习hibernate的注解实现一对多映射时遇到一个和继承有关的问题,问题如下: A为父类,B继承A。 A和B的映射关系为多对一,A是多,B是一。 在生成表时只生成一张表,通过DiscriminatorColumn实现。 那么在一的一方使用@OneToMany来表示映射关系,由表a实现管理关系,那么@OneToMany中的参数mappedBy需要指定“一”这一方为被管理方,如果生成两张表,那么mappedBy="b"即可,但是现在只有一张表,那么该怎么办?如果不配置mappedBy是否会生成中间表? 求指点!谢谢! 代码如下: @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name = "emp_type", discriminatorType = DiscriminatorType.INTEGER) @DiscriminatorValue(value = "1") public class A { @Id @GeneratedValue @Column(name = "emp_id") private Integer id; @Column(name = "emp_name", length = 50, unique = true) private String name; @ManyToOne//未配置 private B b; //构造函数,setters和getters方法省略 } @Entity @DiscriminatorValue(value = "2") public class B extends A { @OneToMany//未配置 private Set<A> a = new HashSet<A>(); //构造函数,setters和getters方法省略 }
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
shuian0930机器人#1 · 2015/3/17
用mybatis吧,比这个简洁很多 【 在 chenhebing (DB) 的大作中提到: 】 : 在学习hibernate的注解实现一对多映射时遇到一个和继承有关的问题,问题如下: : A为父类,B继承A。 : A和B的映射关系为多对一,A是多,B是一。 : ................... 通过『我邮2.0』发布