2007-07-02
有一个关于Hibernate配置的问题
我是使用Annontation mapping的,
有一个父类叫TeacherRefBase,定义如下:
然后在来一个
最后来个
这个时候启动的时候就报错
Duplicate property mapping of teacher found in WorkHistory
请问这个问题 怎么解决?
有一个父类叫TeacherRefBase,定义如下:
@MappedSuperclass
class TeacherRefBase implements Serializable {
..........
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public long getId() {
return id;
}
@ManyToOne(targetEntity=Teacher.class)
@JoinColumn(name="teacherId")
@NotNull
public Teacher getTeacher() {
return teacher;
}
}这里把TeacherRefBase join到 Teacher。
然后在来一个
@MappedSuperclass
class TeacherRef implements Serializable {
..........
public String getName() {
return name;
}
public int getAge() {
return age;
}
@OneToOne(targetEntity=Teacher.class)
@JoinColumn(name="teacherId")
@NotNull
public Teacher getTeacher() {
return teacher;
}
}
最后来个
@Entity
@Table(name="WorkHistory")
public class WorkHistory extends TeacherRef {
........
}
这个时候启动的时候就报错
Duplicate property mapping of teacher found in WorkHistory
请问这个问题 怎么解决?
评论
kyo100900
2007-11-12
[quote="liangguanhui"]我发现Hibernate使用标注德时候,继承时不能重写某一个属性。现在我的解决方法是把父类的getTeacher声明未@Transtimt,然后在子类重新声明Hibernate标注。[/quote]
继承时如果使用Hibernate扩展可以重写某一个属性的,比如:
@MappedSuperclass
public abstract class Father{
//要在子类被重写的属性
@Column(name = "name")
private String name;
//set, get就省略了
}
@Entity
@Table(name = "tbl_sub")
//重写开始
@AttributeOverride(name = "name", column = @Column(name = "sub_name"))
public class Sub extend Father{
//子类的其它属性
}
在这里,子类继承了父类的name属性,但映射的表tbl_sub不是与之对应的"name"字段,是复写的"sub_name"字段.
继承时如果使用Hibernate扩展可以重写某一个属性的,比如:
@MappedSuperclass
public abstract class Father{
//要在子类被重写的属性
@Column(name = "name")
private String name;
//set, get就省略了
}
@Entity
@Table(name = "tbl_sub")
//重写开始
@AttributeOverride(name = "name", column = @Column(name = "sub_name"))
public class Sub extend Father{
//子类的其它属性
}
在这里,子类继承了父类的name属性,但映射的表tbl_sub不是与之对应的"name"字段,是复写的"sub_name"字段.
elvea
2007-11-11
还有一个问题就是MappedSuperclass标注的父类的属性在DWR中是取不到了,不知道有办法解决没有?
liangguanhui
2007-11-10
我发现Hibernate使用标注德时候,继承时不能重写某一个属性。现在我的解决方法是把父类的getTeacher声明未@Transtimt,然后在子类重新声明Hibernate标注。
- 浏览: 14718 次
- 性别:


- 详细资料
搜索本博客
最近加入圈子
最新评论
-
【原创】一个简单的多线程 ...
不错
-- by careprad -
NetBeans6对于VisualWeb ...
不知道页面还是不是xml格式的?平时大家都用的是xhtml格式,Netbeans ...
-- by 魔力猫咪 -
NetBeans6对于VisualWeb ...
好帖!看来LZ对netbeans还是有不少体会的,学习。我的点体会:1.View ...
-- by fkpwolf -
人事考核系统设计时遇到的 ...
我大体看了一下你的需求,没有仔细理解,我下午正好没事做,弄了一下,你看看对你能否 ...
-- by myyate -
人事考核系统设计时遇到的 ...
考核表:考核ID(主键), 考核名称, 考核组标记ID 考核项目表:项目成员ID ...
-- by keenvi






评论排行榜