我在项目中用到JPA,例如有两个表“手机系列表(一方){id,series_name}”,“手机机型表(多方){id,model_name}”
HandserEntity.java
Entity
@SuppressWarnings("serial")
@Table(name="tab_handset_series")
public class HandserEntity implements Serializable{ public Integer id;//主键id
public String series_name;//系列名
public Set<HandmodEntity> handmodEntity = new HashSet<HandmodEntity>(0);//手机型号
public HandserEntity(){
}
public HandserEntity(Integer id,String series_name,Set<HandmodEntity> handmodEntity){
this.id=id;
this.series_name=series_name;
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} @Column(name="series_name")
public String getSeries_name() {
return series_name;
} public void setSeries_name(String series_name) {
this.series_name = series_name;
} @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "handmodEntity")
public Set<HandmodEntity> getHandmodEntity() {
return handmodEntity;
} public void setHandmodEntity(Set<HandmodEntity> handmodEntity) {
this.handmodEntity = handmodEntity;
}
}HandmodEntity.java@Entity
@SuppressWarnings("serial")
@Table(name="tab_handset_model")
public class HandmodEntity implements Serializable{ public Integer id;//主键id
public String model_name;//手机名
public HandserEntity series_id;//所属系列
public HandmodEntity(){
}
public HandmodEntity(Integer id,String model_name,HandserEntity series_id){
this.id=id;
this.model_name=model_name;
this.series_id=series_id;
} //------------set/get方法----------------------------
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} //--------------------------------------------------
@Column(name="model_name")
public String getModel_name() {
return model_name;
} public void setModel_name(String model_name) {
this.model_name = model_name;
} //--------------------------------------------------
@ManyToOne(cascade = {}, fetch = FetchType.LAZY)
@JoinColumn(name = "series_id", unique = false, nullable = true, insertable = true, updatable = true)
public HandserEntity getSeries_id() {
return series_id;
} public void setSeries_id(HandserEntity series_id) {
this.series_id = series_id;
}
}
我在网上查了很久,网上没有一个例子是像我这么写的。可我怎么写在程序中完全好使,一点错误也不报。而网上也有好几种写法。谁能告诉我一种比较权威的写法。谢谢
HandserEntity.java
Entity
@SuppressWarnings("serial")
@Table(name="tab_handset_series")
public class HandserEntity implements Serializable{ public Integer id;//主键id
public String series_name;//系列名
public Set<HandmodEntity> handmodEntity = new HashSet<HandmodEntity>(0);//手机型号
public HandserEntity(){
}
public HandserEntity(Integer id,String series_name,Set<HandmodEntity> handmodEntity){
this.id=id;
this.series_name=series_name;
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} @Column(name="series_name")
public String getSeries_name() {
return series_name;
} public void setSeries_name(String series_name) {
this.series_name = series_name;
} @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "handmodEntity")
public Set<HandmodEntity> getHandmodEntity() {
return handmodEntity;
} public void setHandmodEntity(Set<HandmodEntity> handmodEntity) {
this.handmodEntity = handmodEntity;
}
}HandmodEntity.java@Entity
@SuppressWarnings("serial")
@Table(name="tab_handset_model")
public class HandmodEntity implements Serializable{ public Integer id;//主键id
public String model_name;//手机名
public HandserEntity series_id;//所属系列
public HandmodEntity(){
}
public HandmodEntity(Integer id,String model_name,HandserEntity series_id){
this.id=id;
this.model_name=model_name;
this.series_id=series_id;
} //------------set/get方法----------------------------
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id")
public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} //--------------------------------------------------
@Column(name="model_name")
public String getModel_name() {
return model_name;
} public void setModel_name(String model_name) {
this.model_name = model_name;
} //--------------------------------------------------
@ManyToOne(cascade = {}, fetch = FetchType.LAZY)
@JoinColumn(name = "series_id", unique = false, nullable = true, insertable = true, updatable = true)
public HandserEntity getSeries_id() {
return series_id;
} public void setSeries_id(HandserEntity series_id) {
this.series_id = series_id;
}
}
我在网上查了很久,网上没有一个例子是像我这么写的。可我怎么写在程序中完全好使,一点错误也不报。而网上也有好几种写法。谁能告诉我一种比较权威的写法。谢谢
解决方案 »
- java.sql.SQLException: 不允许的操作
- 【头疼】,EJB3成功发布到JNDI,但客户端访问不到!
- java最常见的应用有哪些?哪些技术在java标准内,但实际开发中很少用 ,哪些技术非java标准,但基本是事实标准
- 求解java虚拟机的工作原理
- 高高高...分了,OsWorkflow 中如何删除一条工作流程?
- 小小的问题,struts总跳到上一层目录
- 大家有没有遇到过这样的气人问题呀.我该怎么办呢?
- 求APPLET传对象(非参数)回SERVLET的代码
- 大家在实际工作中都是怎样优化Hibernate的???
- Spring高并发下Cglib代理性能问题
- 我的脚本没有效果
- txt文件的读取
比如,ManyToOne默认是不进行懒加载的,你要是觉得你用不到的话,就完全
可以不去加载
mappedBy的意思,你可以这样理解,当前类在Set<HandmodEntity>HandmodEntity类对应的字段是series_id
http://www.javaeye.com/topic/641637
里面包含JPA双向一对一,双向一对多,双向多对多,单向一对一,单向一对多,单向多对一与单向多对多