如何用hibernate annotation做一对多的双向关联? @ManyToOne @JoinColumn(name = "tid")这个配置生效了吗? 把代码帖上来看下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 s表:package model;import java.io.Serializable;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;import javax.persistence.Table;/** *创建日期:2008-10-22 */@Entity@Table(name = "s")public class s implements Serializable{ private String sid; private String sname; private String stel; private String ssex; private t t; @Id @Column(name = "sid", nullable = false) public String getSid() { return sid; } public void setSid(String sid) { this.sid = sid; } @Column(name = "sname") public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } @Column(name = "ssex") public String getSsex() { return ssex; } public void setSsex(String ssex) { this.ssex = ssex; } @Column(name = "stel") public String getStel() { return stel; } public void setStel(String stel) { this.stel = stel; } @ManyToOne @JoinColumn(name = "tid") public t getT() { return t; } public void setT(t t) { this.t = t; } }t表:package model;import java.io.Serializable;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.OneToMany;import javax.persistence.Table;import org.hibernate.annotations.LazyCollection;import org.hibernate.annotations.LazyCollectionOption;/** *创建日期:2008-10-22 */@Entity@Table(name = "t")public class t implements Serializable{ private String tid; private String tname; private String tage; private String tsex; private List<s> sl; @Id @Column(name = "tid", nullable = false) public String getTid() { return tid; } public void setTid(String tid) { this.tid = tid; } @Column(name = "tname") public String getTname() { return tname; } public void setTname(String tname) { this.tname = tname; } @Column(name = "tage") public String getTage() { return tage; } public void setTage(String tage) { this.tage = tage; } @Column(name = "tsex") public String getTsex() { return tsex; } public void setTsex(String tsex) { this.tsex = tsex; } @OneToMany(mappedBy="t",cascade=CascadeType.ALL,fetch=FetchType.EAGER,targetEntity=s.class) public List<s> getSl() { return sl; } public void setSl(List<s> sl) { this.sl = sl; } }单元测试:package dao;import static org.junit.Assert.*;import java.util.ArrayList;import java.util.List;import model.s;import model.t;import org.junit.Before;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;/** *创建日期:2008-9-12 */public class testhibernate { private static sDAO sDAO; private static tDAO tDAO; @Before public void setUp() throws Exception { String config="classpath*:applicationContext.xml"; ApplicationContext context=new ClassPathXmlApplicationContext(config); sDAO=(sDAO)context.getBean("sDAO"); tDAO=(tDAO)context.getBean("tDAO"); assertNotNull(sDAO); assertNotNull(tDAO); }; @Test public void testCRUD(){ t ts=new t(); ts.setTid("139"); ts.setTname("sss"); ts.setTsex("xxx"); List<s> ss=new ArrayList<s>(); for(int i=0;i<3;i++){ s sx=new s(); sx.setSid("@"+i); sx.setSname("xds"+i); ss.add(sx); } ts.setSl(ss); tDAO.add(ts); assertNotNull(tDAO.get("139").getTname()); } } s表:package model;import java.io.Serializable;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;import javax.persistence.Table;/** *创建日期:2008-10-22 */@Entity@Table(name = "s")public class s implements Serializable{ private String sid; private String sname; private String stel; private String ssex; private t t; @Id @Column(name = "sid", nullable = false) public String getSid() { return sid; } public void setSid(String sid) { this.sid = sid; } @Column(name = "sname") public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } @Column(name = "ssex") public String getSsex() { return ssex; } public void setSsex(String ssex) { this.ssex = ssex; } @Column(name = "stel") public String getStel() { return stel; } public void setStel(String stel) { this.stel = stel; } @ManyToOne @JoinColumn(name = "tid") public t getT() { return t; } public void setT(t t) { this.t = t; } }t表:package model;import java.io.Serializable;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.OneToMany;import javax.persistence.Table;import org.hibernate.annotations.LazyCollection;import org.hibernate.annotations.LazyCollectionOption;/** *创建日期:2008-10-22 */@Entity@Table(name = "t")public class t implements Serializable{ private String tid; private String tname; private String tage; private String tsex; private List<s> sl; @Id @Column(name = "tid", nullable = false) public String getTid() { return tid; } public void setTid(String tid) { this.tid = tid; } @Column(name = "tname") public String getTname() { return tname; } public void setTname(String tname) { this.tname = tname; } @Column(name = "tage") public String getTage() { return tage; } public void setTage(String tage) { this.tage = tage; } @Column(name = "tsex") public String getTsex() { return tsex; } public void setTsex(String tsex) { this.tsex = tsex; } @OneToMany(mappedBy="t",cascade=CascadeType.ALL,fetch=FetchType.EAGER,targetEntity=s.class) public List<s> getSl() { return sl; } public void setSl(List<s> sl) { this.sl = sl; } }单元测试:package dao;import static org.junit.Assert.*;import java.util.ArrayList;import java.util.List;import model.s;import model.t;import org.junit.Before;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;/** *创建日期:2008-9-12 */public class testhibernate { private static sDAO sDAO; private static tDAO tDAO; @Before public void setUp() throws Exception { String config="classpath*:applicationContext.xml"; ApplicationContext context=new ClassPathXmlApplicationContext(config); sDAO=(sDAO)context.getBean("sDAO"); tDAO=(tDAO)context.getBean("tDAO"); assertNotNull(sDAO); assertNotNull(tDAO); }; @Test public void testCRUD(){ t ts=new t(); ts.setTid("139"); ts.setTname("sss"); ts.setTsex("xxx"); List<s> ss=new ArrayList<s>(); for(int i=0;i<3;i++){ s sx=new s(); sx.setSid("@"+i); sx.setSname("xds"+i); ss.add(sx); } ts.setSl(ss); tDAO.add(ts); assertNotNull(tDAO.get("139").getTname()); } } 你写的也太复杂了,bean属性和表里的字段一致就可以了,可以节省很多代码 我是这样做的。我的数据库是MySql5.0版本。在子表的时候。主表的数据重复。主表3条数据。子表6条数据。在显示的时候。主表的数据就重复显示了3次。 火大了 hibernate 设置sequence 问题 上传一个netneans工程,帮我看看哪儿出错误了 使用STRUTS框架心德(原创,欢迎转载) 一个奇怪的java和jsp的问题 怎样实现一个状态监控功能 50分求mod_jk_1.2.6_2.0.50.dll这个文件 紧急求救!小弟初学struts,哪位兄台知道JBuider X下 struts的jdbc驱动怎么设置吗?我是SQL2000 用struts1.2的帮帮忙 TOMCAT构架JSP的。。。 求教java实现sql模糊搜索 java 泛型 关于spring的scope作用域问题!!速度解决啊帮忙!
package model;import java.io.Serializable;import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;/**
*创建日期:2008-10-22
*/
@Entity
@Table(name = "s")
public class s implements Serializable{
private String sid;
private String sname;
private String stel;
private String ssex;
private t t;
@Id
@Column(name = "sid", nullable = false)
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
@Column(name = "sname")
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
@Column(name = "ssex")
public String getSsex() {
return ssex;
}
public void setSsex(String ssex) {
this.ssex = ssex;
}
@Column(name = "stel")
public String getStel() {
return stel;
}
public void setStel(String stel) {
this.stel = stel;
}
@ManyToOne
@JoinColumn(name = "tid")
public t getT() {
return t;
}
public void setT(t t) {
this.t = t;
} }t表:
package model;import java.io.Serializable;
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.OneToMany;
import javax.persistence.Table;import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;/**
*创建日期:2008-10-22
*/
@Entity
@Table(name = "t")
public class t implements Serializable{
private String tid;
private String tname;
private String tage;
private String tsex;
private List<s> sl;
@Id
@Column(name = "tid", nullable = false)
public String getTid() {
return tid;
}
public void setTid(String tid) {
this.tid = tid;
}
@Column(name = "tname")
public String getTname() {
return tname;
}
public void setTname(String tname) {
this.tname = tname;
}
@Column(name = "tage")
public String getTage() {
return tage;
}
public void setTage(String tage) {
this.tage = tage;
}
@Column(name = "tsex")
public String getTsex() {
return tsex;
}
public void setTsex(String tsex) {
this.tsex = tsex;
}
@OneToMany(mappedBy="t",cascade=CascadeType.ALL,fetch=FetchType.EAGER,targetEntity=s.class)
public List<s> getSl() {
return sl;
}
public void setSl(List<s> sl) {
this.sl = sl;
}
}
单元测试:
package dao;import static org.junit.Assert.*;import java.util.ArrayList;
import java.util.List;import model.s;
import model.t;import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;/**
*创建日期:2008-9-12
*/public class testhibernate {
private static sDAO sDAO;
private static tDAO tDAO; @Before
public void setUp() throws Exception {
String config="classpath*:applicationContext.xml";
ApplicationContext context=new ClassPathXmlApplicationContext(config);
sDAO=(sDAO)context.getBean("sDAO");
tDAO=(tDAO)context.getBean("tDAO");
assertNotNull(sDAO);
assertNotNull(tDAO);
};
@Test
public void testCRUD(){
t ts=new t();
ts.setTid("139");
ts.setTname("sss");
ts.setTsex("xxx");
List<s> ss=new ArrayList<s>();
for(int i=0;i<3;i++){
s sx=new s();
sx.setSid("@"+i);
sx.setSname("xds"+i);
ss.add(sx);
}
ts.setSl(ss);
tDAO.add(ts);
assertNotNull(tDAO.get("139").getTname());
} }
package model;import java.io.Serializable;import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;/**
*创建日期:2008-10-22
*/
@Entity
@Table(name = "s")
public class s implements Serializable{
private String sid;
private String sname;
private String stel;
private String ssex;
private t t;
@Id
@Column(name = "sid", nullable = false)
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
@Column(name = "sname")
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
@Column(name = "ssex")
public String getSsex() {
return ssex;
}
public void setSsex(String ssex) {
this.ssex = ssex;
}
@Column(name = "stel")
public String getStel() {
return stel;
}
public void setStel(String stel) {
this.stel = stel;
}
@ManyToOne
@JoinColumn(name = "tid")
public t getT() {
return t;
}
public void setT(t t) {
this.t = t;
} }t表:
package model;import java.io.Serializable;
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.OneToMany;
import javax.persistence.Table;import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;/**
*创建日期:2008-10-22
*/
@Entity
@Table(name = "t")
public class t implements Serializable{
private String tid;
private String tname;
private String tage;
private String tsex;
private List<s> sl;
@Id
@Column(name = "tid", nullable = false)
public String getTid() {
return tid;
}
public void setTid(String tid) {
this.tid = tid;
}
@Column(name = "tname")
public String getTname() {
return tname;
}
public void setTname(String tname) {
this.tname = tname;
}
@Column(name = "tage")
public String getTage() {
return tage;
}
public void setTage(String tage) {
this.tage = tage;
}
@Column(name = "tsex")
public String getTsex() {
return tsex;
}
public void setTsex(String tsex) {
this.tsex = tsex;
}
@OneToMany(mappedBy="t",cascade=CascadeType.ALL,fetch=FetchType.EAGER,targetEntity=s.class)
public List<s> getSl() {
return sl;
}
public void setSl(List<s> sl) {
this.sl = sl;
}
}
单元测试:
package dao;import static org.junit.Assert.*;import java.util.ArrayList;
import java.util.List;import model.s;
import model.t;import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;/**
*创建日期:2008-9-12
*/public class testhibernate {
private static sDAO sDAO;
private static tDAO tDAO; @Before
public void setUp() throws Exception {
String config="classpath*:applicationContext.xml";
ApplicationContext context=new ClassPathXmlApplicationContext(config);
sDAO=(sDAO)context.getBean("sDAO");
tDAO=(tDAO)context.getBean("tDAO");
assertNotNull(sDAO);
assertNotNull(tDAO);
};
@Test
public void testCRUD(){
t ts=new t();
ts.setTid("139");
ts.setTname("sss");
ts.setTsex("xxx");
List<s> ss=new ArrayList<s>();
for(int i=0;i<3;i++){
s sx=new s();
sx.setSid("@"+i);
sx.setSname("xds"+i);
ss.add(sx);
}
ts.setSl(ss);
tDAO.add(ts);
assertNotNull(tDAO.get("139").getTname());
} }