javax.persistence.OneToMany.orphanRemoval()Z 解决办法

本文介绍了在使用MyEclipse创建Java EE 5.0 Web项目时遇到的Java EE与Hibernate JPA版本冲突问题及其解决方案。主要讨论了三种常见情况:移除Java EE Libraries依赖、排除与EJB jar包的冲突以及解决JUnit测试中JPA包冲突的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

javax.persistence.OneToMany.orphanRemoval()Z


(1) 
如果是使用MyEclipse创建JavaEE5.0的Web项目,解决办法:删除对Java EE 5 Libraries的使用。 
问题原因:javaee.jar中的部分类与hibernate-jpa-2.0-api-1.0.0.Final.jar存在版本冲突。 
参考文章:http://hi.baidu.com/siasmen/blog/item/7253e954e3abdb55d0090607.html 
(2) 
如果使用了ejb的jar包,删除引用, 
问题原因:与hibernate-jpa-2.0-api-1.0.0.Final.jar冲突 
(3) 
如果是用junit测试,junit4自带的jpa包与hibernate的jpa包冲突 

本人是第一种问题,一般好像都是第一种和第二种。 
另外奇异的是本人只在使用OneToOne注解时报了错,而只用ManyToOne的时候却没有。。。题外话了,不知道为何 

另转载注明请出处http://hi.baidu.com/woodcock1017/blog/item/cde710dc2f981ef877c63811.html

package com.kucun.data.entity; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.UniqueConstraint; /** * 订单 * @author Administrator * */ @Entity @Table(name="dingdan", uniqueConstraints = { @UniqueConstraint(columnNames = "number") }) public class Dingdan { @Id private Integer id; //订单号 private String number; @OneToMany( mappedBy = "dingdan", cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true ) private List<Dingdan_chanpin> dingdan_chanpins; // 优化订单与订单组件关联 @OneToMany( mappedBy = "dingdan", cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true ) private List<Dingdan_chanpin_zujian> dingdan_chanpins_zujians; private List<Chanpin> chanpins; public List<Dingdan_chanpin_zujian> getDingdan_chanpins_zujians() { return dingdan_chanpins_zujians; } public void setDingdan_chanpins_zujians(List<Dingdan_chanpin_zujian> dingdan_chanpins_zujians) { this.dingdan_chanpins_zujians = dingdan_chanpins_zujians; } public List<Chanpin> getChanpins() { return chanpins; } public void setChanpins(List<Chanpin> chanpins) { this.chanpins = chanpins; } public List<Dingdan_chanpin> getDingdan_chanpins() { return dingdan_chanpins; } public void setDingdan_chanpins(List<Dingdan_chanpin> dingdan_chanpins) { this.dingdan_chanpins = dingdan_chanpins; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public Dingdan(Integer id, String number) { super(); this.id = id; this.number = number; } public Dingdan() { super(); // TODO Auto-generated constructor stub } } package com.kucun.data.entity; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.UniqueConstraint; /** * 产品类 * @author Administrator * */ @Entity @Table(name="chanpin", uniqueConstraints = { @UniqueConstraint(columnNames = "bianhao") }) public class Chanpin { @Id private Integer id; // 关联订单产品 @OneToMany( mappedBy = "chanpin", cascade = CascadeType.ALL, fetch = FetchType.LAZY ) private List<Dingdan_chanpin> dingdans; private String bianhao; @OneToMany( mappedBy = "chanpin", cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true ) private List<Chanpin_zujian> zujians; // 添加/移除组件的辅助方法 public void addZujian(Chanpin_zujian zujian) { zujians.add(zujian); zujian.setChanpin(this); } public void removeZujian(Chanpin_zujian zujian) { zujians.remove(zujian); zujian.setChanpin(null); } // 添加/移除组件的辅助方法 public void addDingdan(Dingdan_chanpin dingdan) { dingdans.add(dingdan); dingdan.setChanpin(this); } public void removeDingdan(Dingdan_chanpin dingdian) { dingdans.remove(dingdian); dingdian.setChanpin(null); } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public List<Dingdan_chanpin> getDingdans() { return dingdans; } public void setDingdans(List<Dingdan_chanpin> dingdans) { this.dingdans = dingdans; } public String getBianhao() { return bianhao; } public void setBianhao(String bianhao) { this.bianhao = bianhao; } public List<Chanpin_zujian> getZujians() { return zujians; } public void setZujians(List<Chanpin_zujian> zujians) { this.zujians = zujians; } public Chanpin(Integer id, List<Dingdan_chanpin> dingdians, String bianhao, List<Chanpin_zujian> zujians) { super(); this.id = id; this.dingdans = dingdians; this.bianhao = bianhao; this.zujians = zujians; } public Chanpin() { super(); // TODO Auto-generated constructor stub } } package com.kucun.data.entity; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; /** * 一个订单中的产品组件订购板材数量 * @author Administrator * */ @Entity public class Dingdan_chanpin_zujian { @Id private Integer id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "dingdan_id") // 指定外键列 private Dingdan dingdan; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "chanpin_zujian_id") // 指定外键列 private Chanpin_zujian zujian; // 修改为单数形式 //板材 @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "bancai_id") private Bancai bancai; //订购数 private Integer shuliang ; public Dingdan_chanpin_zujian() { super(); // TODO Auto-generated constructor stub } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Dingdan getDingdan() { return dingdan; } public void setDingdan(Dingdan dingdan) { this.dingdan = dingdan; } public Bancai getBancai() { return bancai; } public void setBancai(Bancai bancai) { this.bancai = bancai; } public Chanpin_zujian getZujian() { return zujian; } public void setZujian(Chanpin_zujian zujian) { this.zujian = zujian; } public Integer getShuliang() { return shuliang; } public void setShuliang(Integer shuliang) { this.shuliang = shuliang; } } package com.kucun.data.entity; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; /** * 订单和产品关联 * @author Administrator * */ @Entity @Table(name="dingdan_chanpin") public class Dingdan_chanpin { @Id private Integer id; //产品信息 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "dingdai_id") // 指 private Dingdan dingdan; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "chanpin_id") // 指 private Chanpin chanpin; private Integer shuliang;//产品数量; public Chanpin getChanpin() { return chanpin; } public void setChanpin(Chanpin chanpin) { this.chanpin = chanpin; } public Integer getShuliang() { return shuliang; } public void setShuliang(Integer shuliang) { this.shuliang = shuliang; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Dingdan getDingdan() { return dingdan; } public void setDingdan(Dingdan dingdan) { this.dingdan = dingdan; } public Chanpin getChanping() { return chanpin; } public void setChanping(Chanpin chanping) { this.chanpin = chanping; } } 关联编写,现在多出3个只有两个字段的表
最新发布
06-08
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值