Hibernate单表映射? 一个表结构是这样的:id inttitle stringparent_id int要用Hibernate写一个映射文件,可以实现自身的一对一,和一对多映射。就是 一个父Id可以有多个子id元素。一个子id只能对应一个父id。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 package com.xuz.hibernate.vo;import java.math.BigDecimal;import java.util.HashSet;import java.util.Set;import javax.persistence.CascadeType;import javax.persistence.Column;import javax.persistence.FetchType;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;import javax.persistence.MappedSuperclass;import javax.persistence.OneToMany;/** * AbstractOrg entity provides the base persistence definition of the Org * entity. @author MyEclipse Persistence Tools */@MappedSuperclasspublic abstract class AbstractOrg implements java.io.Serializable { // Fields private BigDecimal orgid; private Org org; private String orgname; private Set<Org> orgs = new HashSet<Org>(0); // Constructors /** default constructor */ public AbstractOrg() { } /** minimal constructor */ public AbstractOrg(BigDecimal orgid) { this.orgid = orgid; } /** full constructor */ public AbstractOrg(BigDecimal orgid, Org org, String orgname, Set<Org> orgs) { this.orgid = orgid; this.org = org; this.orgname = orgname; this.orgs = orgs; } // Property accessors @Id @Column(name = "ORGID", unique = true, nullable = false, precision = 22, scale = 0) public BigDecimal getOrgid() { return this.orgid; } public void setOrgid(BigDecimal orgid) { this.orgid = orgid; } @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "PARENT_ID") public Org getOrg() { return this.org; } public void setOrg(Org org) { this.org = org; } @Column(name = "ORGNAME", length = 10) public String getOrgname() { return this.orgname; } public void setOrgname(String orgname) { this.orgname = orgname; } @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "org") public Set<Org> getOrgs() { return this.orgs; } public void setOrgs(Set<Org> orgs) { this.orgs = orgs; }} 表结构字段 类型 备注 OrgId NUMBER(10) 主键 OrgName Varchar2(128) 组织机构名称 ParentId NUMBER(10) 父机构ID,外键参考OrgId <id name="id" column="employee_id" type="int"> <generator class="native"/> </id> <property name="name" column="employee_name" type="string" not-null="true" /> <set name="inferiors" inverse="false" cascade="all" lazy="false"> <key column="superior_id" /> <one-to-many class="Employee" /> </set> <many-to-one name="superior" class="Employee" column="superior_id" cascade="all"></many-to-one>单表自身映射,双向楼主可以参考下 不知道,调用的时候怎么用,如何添加数据呢。 添加数据时superior_id老时为null值 struts2省份级联问题 hibernate3.5+spring2.5+struts2.1 dwr调用struts!还是spring里的Dao!!那种方式好! Lucene 高亮 错误 java流量统计问题!请各位 求大神 这个方法为什么只循环一次 Jboss中的JMS队列能被客户端发送和接受消息,服务器上要怎么配置? 请问我在windows2000+iis的服务器上安装了tomcat,装了两遍均无法启动tomcat服务器,为什么? 关于CMP中的一对一关系的问题! 扫描不到jar包内的注解 接口问题.................长长长......... 在JAVA中什么是对象的绑定?
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass;
import javax.persistence.OneToMany;/**
* AbstractOrg entity provides the base persistence definition of the Org
* entity. @author MyEclipse Persistence Tools
*/
@MappedSuperclass
public abstract class AbstractOrg implements java.io.Serializable { // Fields private BigDecimal orgid;
private Org org;
private String orgname;
private Set<Org> orgs = new HashSet<Org>(0); // Constructors /** default constructor */
public AbstractOrg() {
} /** minimal constructor */
public AbstractOrg(BigDecimal orgid) {
this.orgid = orgid;
} /** full constructor */
public AbstractOrg(BigDecimal orgid, Org org, String orgname, Set<Org> orgs) {
this.orgid = orgid;
this.org = org;
this.orgname = orgname;
this.orgs = orgs;
} // Property accessors
@Id
@Column(name = "ORGID", unique = true, nullable = false, precision = 22, scale = 0)
public BigDecimal getOrgid() {
return this.orgid;
} public void setOrgid(BigDecimal orgid) {
this.orgid = orgid;
} @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "PARENT_ID")
public Org getOrg() {
return this.org;
} public void setOrg(Org org) {
this.org = org;
} @Column(name = "ORGNAME", length = 10)
public String getOrgname() {
return this.orgname;
} public void setOrgname(String orgname) {
this.orgname = orgname;
} @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "org")
public Set<Org> getOrgs() {
return this.orgs;
} public void setOrgs(Set<Org> orgs) {
this.orgs = orgs;
}}
OrgId NUMBER(10) 主键
OrgName Varchar2(128) 组织机构名称
ParentId NUMBER(10) 父机构ID,外键参考OrgId
<id name="id" column="employee_id" type="int">
<generator class="native"/>
</id>
<property name="name" column="employee_name" type="string" not-null="true" />
<set name="inferiors" inverse="false" cascade="all" lazy="false">
<key column="superior_id" />
<one-to-many class="Employee" />
</set> <many-to-one name="superior" class="Employee" column="superior_id" cascade="all"></many-to-one>
单表自身映射,双向
楼主可以参考下
不知道,调用的时候怎么用,如何添加数据呢。 添加数据时superior_id老时为null值