@OneToMany使用这个注解犯的错误

今天在开发时用到@OneToMany注解方式遇到错误:

1、要么在属性上添加注解要么在getter方法上添加注解,不能混合使用;

2、遇到异常:Associations marked as mappedBy must not define database mappings like @JoinTable or @JoinColumn错误,主要原因是,mappedBy="parent"@JoinColumn(name="parent_id")不能同时使用

@OneToMany(mappedBy="parent",fetch=FetchType.EAGER,cascade=CascadeType.ALL)
@JoinColumn(name="parent_id")
private List<Category> child = new ArrayList<Category>();
后来发现在3.5.3版本中@JoinColumn与mappingBy是互斥的,之前在hibernate.3.3.2中都是正确无误的,也就是hibernate.3.3.2允许这两个互相存在。
所以,如果升级到hibernate3.5.3想测试成功的话,mappBy="parent",就应该去掉,正确的配置应该是这样
@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL)
@JoinColumn(name="parent_id")
private List<Category> child = new ArrayList<Category>();

猜你喜欢

转载自edision.iteye.com/blog/2213424