package com.bjsxt.oa.model;import java.util.Set;public class Module {
private int id;
private String name;
private Module parent;
private Set children;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Module getParent() {
return parent;
}
public void setParent(Module parent) {
this.parent = parent;
}
public Set getChildren() {
return children;
}
public void setChildren(Set children) {
this.children = children;
}
}private Set children;
set的多对一对应的是自身,我看到xml中
<set lazy="extra" inverse="true" name="children">
<key column="pid"/>
<one-to-many class="com.bjsxt.oa.model.Module"/>
</set>
这个xml配置用注解怎么写啊?
private int id;
private String name;
private Module parent;
private Set children;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Module getParent() {
return parent;
}
public void setParent(Module parent) {
this.parent = parent;
}
public Set getChildren() {
return children;
}
public void setChildren(Set children) {
this.children = children;
}
}private Set children;
set的多对一对应的是自身,我看到xml中
<set lazy="extra" inverse="true" name="children">
<key column="pid"/>
<one-to-many class="com.bjsxt.oa.model.Module"/>
</set>
这个xml配置用注解怎么写啊?
@ManyToOne
@JoinColumn(name="pid")
public Module getParent() {
return parent;
}
@OneToMany(mappedBy="parent")
public Set getChildren() {
return children;
}
@JoinColumn(name="pid")
package com.esft.tapwater.model;
import java.util.Set;public class Module
{
private int id;
private String name;
private String sn;
private String url;
private int orderNo;
private Module parent; //父机构
private Set children; //子机构 public Set getChildren()
{
return children;
}
public void setChildren( Set children )
{
this.children = children;
}
public int getId()
{
return id;
}
public void setId( int id )
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName( String name )
{
this.name = name;
}
public int getOrderNo()
{
return orderNo;
}
public void setOrderNo( int orderNo )
{
this.orderNo = orderNo;
}
public Module getParent()
{
return parent;
}
public void setParent( Module parent )
{
this.parent = parent;
}
public String getSn()
{
return sn;
}
public void setSn( String sn )
{
this.sn = sn;
}
public String getUrl()
{
return url;
}
public void setUrl( String url )
{
this.url = url;
}
}
现在是这样,父机构和子机构在数据库中只对用了一条数据。xml文件配置如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping>
<class table="T_Module" name="com.esft.tapwater.model.Module">
<id name="id">
<generator class="native"/>
</id>
<property name="name" not-null="true" unique="true"/>
<property name="sn" not-null="true" unique="true"/>
<property name="url"/>
<property name="orderNo"/>
<many-to-one column="parentId" name="parent"/>
<set lazy="extra" inverse="true" name="children" order-by="orderNo">
<key column="parentId"/>
<one-to-many class="com.esft.tapwater.model.Module"/>
</set>
</class>
</hibernate-mapping>
我想把它改成用注解写的,还有不是很明白他为什么要并成一条数据,请达人教我。
public int getId()
{
return id;
}@Column(nullable=false, unique=true)
public String getName()
{
return name;
}public int getOrderNo()
{
return orderNo;
}@ManyToOne
@JoinColumn(name="pid")
public Module getParent()
{
return parent;
}@Column(nullable=false, unique=true)
public String getSn()
{
return sn;
}public String getUrl()
{
return url;
}@OneToMany(mappedBy="parent")
@OrderBy("orderNo")
public Set getChildren()
{
return children;
}注意:这是用记事本写的,也不知道有没有语法错误,也没有测试