返回信息流在学习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方法省略
}
这是一条镜像帖。来源:北邮人论坛 / java / #39284同步于 2015/3/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
hibernate使用注解方式实现一对多的映射问题
chenhebing
2015/3/16镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
用mybatis吧,比这个简洁很多
【 在 chenhebing (DB) 的大作中提到: 】
: 在学习hibernate的注解实现一对多映射时遇到一个和继承有关的问题,问题如下:
: A为父类,B继承A。
: A和B的映射关系为多对一,A是多,B是一。
: ...................
通过『我邮2.0』发布