Java 未在子表中插入外键
我试图插入组织及其人员详细信息(一对多双向关系) 但是,这里数据被插入到组织及其人员详细信息中,但是外键(Java 未在子表中插入外键,java,hibernate,Java,Hibernate,我试图插入组织及其人员详细信息(一对多双向关系) 但是,这里数据被插入到组织及其人员详细信息中,但是外键(orgid)没有被插入到orgperson表中 Organization.java package com.techvision.model; import java.io.Serializable; import javax.persistence.*; import java.util.Set; @Entity @Table(name="organization") @NamedQu
orgid
)没有被插入到orgperson
表中
Organization.java
package com.techvision.model;
import java.io.Serializable;
import javax.persistence.*;
import java.util.Set;
@Entity
@Table(name="organization")
@NamedQuery(name="Organization.findAll", query="SELECT o FROM Organization o")
public class Organization implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(unique=true, nullable=false)
private int orgid;
@Column(length=45)
private String orgname;
//bi-directional many-to-one association to Orgperson
@OneToMany(mappedBy="organization",cascade=CascadeType.ALL)
private Set<Orgperson> orgpersons;
public Organization() {
}
public int getOrgid() {
return this.orgid;
}
public void setOrgid(int orgid) {
this.orgid = orgid;
}
public String getOrgname() {
return this.orgname;
}
public void setOrgname(String orgname) {
this.orgname = orgname;
}
public Set<Orgperson> getOrgpersons() {
return this.orgpersons;
}
public void setOrgpersons(Set<Orgperson> orgpersons) {
this.orgpersons = orgpersons;
}
public Orgperson addOrgperson(Orgperson orgperson) {
System.out.println(orgperson.getPersonname());
getOrgpersons().add(orgperson);
orgperson.setOrganization(this);
return orgperson;
}
public Orgperson removeOrgperson(Orgperson orgperson) {
getOrgpersons().remove(orgperson);
orgperson.setOrganization(null);
return orgperson;
}
}
package com.techvision.model;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name="orgperson")
@NamedQuery(name="Orgperson.findAll", query="SELECT o FROM Orgperson o")
public class Orgperson implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(unique=true, nullable=false)
private int orgpersonid;
@Column(length=45)
private String personname;
//bi-directional many-to-one association to Organization
@ManyToOne
@JoinColumn(name="orgid")
private Organization organization;
public Orgperson() {
}
public int getOrgpersonid() {
return this.orgpersonid;
}
public void setOrgpersonid(int orgpersonid) {
this.orgpersonid = orgpersonid;
}
public String getPersonname() {
return this.personname;
}
public void setPersonname(String personname) {
this.personname = personname;
}
public Organization getOrganization() {
return this.organization;
}
public void setOrganization(Organization organization) {
this.organization = organization;
}
}
package com.techvision.MainApp;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import com.techvision.Util.HibernateUtil;
import com.techvision.model.Organization;
import com.techvision.model.Orgperson;
public class MyApp {
public static void main (String args[])
{
SessionFactory sf = HibernateUtil.getSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
Organization org=new Organization();
org.setOrgname("AZZ");
Set<Orgperson> orgset=new HashSet<Orgperson>();
Orgperson orgperson1=new Orgperson();
Orgperson orgperson2=new Orgperson();
orgperson1.setPersonname("ravi");
orgperson2.setPersonname("rams");
orgset.add(orgperson1);
orgset.add(orgperson2);
org.setOrgpersons(orgset);
session.save(org);
session.getTransaction().commit();
session.close();
}
}
MainApp.java
package com.techvision.model;
import java.io.Serializable;
import javax.persistence.*;
import java.util.Set;
@Entity
@Table(name="organization")
@NamedQuery(name="Organization.findAll", query="SELECT o FROM Organization o")
public class Organization implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(unique=true, nullable=false)
private int orgid;
@Column(length=45)
private String orgname;
//bi-directional many-to-one association to Orgperson
@OneToMany(mappedBy="organization",cascade=CascadeType.ALL)
private Set<Orgperson> orgpersons;
public Organization() {
}
public int getOrgid() {
return this.orgid;
}
public void setOrgid(int orgid) {
this.orgid = orgid;
}
public String getOrgname() {
return this.orgname;
}
public void setOrgname(String orgname) {
this.orgname = orgname;
}
public Set<Orgperson> getOrgpersons() {
return this.orgpersons;
}
public void setOrgpersons(Set<Orgperson> orgpersons) {
this.orgpersons = orgpersons;
}
public Orgperson addOrgperson(Orgperson orgperson) {
System.out.println(orgperson.getPersonname());
getOrgpersons().add(orgperson);
orgperson.setOrganization(this);
return orgperson;
}
public Orgperson removeOrgperson(Orgperson orgperson) {
getOrgpersons().remove(orgperson);
orgperson.setOrganization(null);
return orgperson;
}
}
package com.techvision.model;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name="orgperson")
@NamedQuery(name="Orgperson.findAll", query="SELECT o FROM Orgperson o")
public class Orgperson implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(unique=true, nullable=false)
private int orgpersonid;
@Column(length=45)
private String personname;
//bi-directional many-to-one association to Organization
@ManyToOne
@JoinColumn(name="orgid")
private Organization organization;
public Orgperson() {
}
public int getOrgpersonid() {
return this.orgpersonid;
}
public void setOrgpersonid(int orgpersonid) {
this.orgpersonid = orgpersonid;
}
public String getPersonname() {
return this.personname;
}
public void setPersonname(String personname) {
this.personname = personname;
}
public Organization getOrganization() {
return this.organization;
}
public void setOrganization(Organization organization) {
this.organization = organization;
}
}
package com.techvision.MainApp;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import com.techvision.Util.HibernateUtil;
import com.techvision.model.Organization;
import com.techvision.model.Orgperson;
public class MyApp {
public static void main (String args[])
{
SessionFactory sf = HibernateUtil.getSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
Organization org=new Organization();
org.setOrgname("AZZ");
Set<Orgperson> orgset=new HashSet<Orgperson>();
Orgperson orgperson1=new Orgperson();
Orgperson orgperson2=new Orgperson();
orgperson1.setPersonname("ravi");
orgperson2.setPersonname("rams");
orgset.add(orgperson1);
orgset.add(orgperson2);
org.setOrgpersons(orgset);
session.save(org);
session.getTransaction().commit();
session.close();
}
}
请尝试下面的代码,您没有将组织设置为orgperson实体
package com.techvision.MainApp;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import com.techvision.Util.HibernateUtil;
import com.techvision.model.Organization;
import com.techvision.model.Orgperson;
public class MyApp {
public static void main (String args[])
{
SessionFactory sf = HibernateUtil.getSessionFactory();
Session session = sf.openSession();
session.beginTransaction();
Organization org=new Organization();
org.setOrgname("AZZ");
Set<Orgperson> orgset=new HashSet<Orgperson>();
Orgperson orgperson1=new Orgperson();
Orgperson orgperson2=new Orgperson();
orgperson1.setPersonname("ravi");
orgperson2.setPersonname("rams");
orgperson1.setOrganization(org);
orgperson2.setOrganization(org);
orgset.add(orgperson1);
orgset.add(orgperson2);
org.setOrgpersons(orgset);
session.save(org);
session.getTransaction().commit();
session.close();
}
}
package com.techvision.MainApp;
导入java.util.HashSet;
导入java.util.Iterator;
导入java.util.Set;
导入org.hibernate.Session;
导入org.hibernate.SessionFactory;
导入com.techvision.Util.HibernateUtil;
导入com.techvision.model.Organization;
导入com.techvision.model.Orgperson;
公共类MyApp{
公共静态void main(字符串参数[])
{
SessionFactory sf=HibernateUtil.getSessionFactory();
Session Session=sf.openSession();
session.beginTransaction();
组织机构=新组织机构();
org.setOrgname(“AZZ”);
Set orgset=newhashset();
Orgperson orgperson1=新的Orgperson();
Orgperson orgperson2=新的Orgperson();
orgperson1.setPersonname(“ravi”);
orgperson2.setPersonname(“rams”);
orgperson1.setOrganization(组织);
orgperson2.setOrganization(组织);
orgset.add(orgperson1);
orgset.add(orgperson2);
org.setOrgpersons(orgset);
session.save(org);
session.getTransaction().commit();
session.close();
}
}
@Column(unique=true,nullable=false)私有int-orgid
为该列指定一个类似于@Column(name='orgid',unique=true,nullable=false)private int-orgid的名称您是否尝试过将@JoinColumn(name=“orgid”)
和@ManyToOne
移动到get方法公共组织getOrganization()
我已经像您所说的那样进行了更改,但仍然没有插入到orgperson表中。