具体要做成一个导航的菜单,类似于淘宝网的分类信息。
说明,就是想把XML文件的内容转成用Annotation来写,最后一个List不知道怎么写了?
##############################################################################################################
数据表:
DROP TABLE IF EXISTS d_d_category;
CREATE TABLE d_d_category (
  id int(12) NOT NULL auto_increment,
  turn int(10) NOT NULL,
  en_name varchar(200) NOT NULL,
  name varchar(200) NOT NULL,
  description varchar(200),
  parent_id int(10),
  PRIMARY KEY  (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO d_d_category VALUES (1,1,'Book','图书',NULL,0);
INSERT INTO d_d_category VALUES (2,1,'Novel','小说',NULL,1);
INSERT INTO d_d_category VALUES (3,2,'Youth','青春',NULL,1);
INSERT INTO d_d_category VALUES (4,3,'Humanity And Social Science','人文社科',NULL,1);
INSERT INTO d_d_category VALUES (5,4,'Management','管理',NULL,1);
INSERT INTO d_d_category VALUES (6,5,'Children','少儿',NULL,1);
INSERT INTO d_d_category VALUES (7,6,'Foreign Language','外语',NULL,1);
INSERT INTO d_d_category VALUES (8,7,'Computer','计算机',NULL,1);
INSERT INTO d_d_category VALUES (9,1,'Chinese Contemporary Novel','当代小说',NULL,2);
INSERT INTO d_d_category VALUES (10,2,'Chinese Modern Novel','近现代小说',NULL,2);
INSERT INTO d_d_category VALUES (11,3,'Chinese Classical  Novel','古典小说',NULL,2);
INSERT INTO d_d_category VALUES (12,4,'Four Classic Novels','四大名著',NULL,2);
INSERT INTO d_d_category VALUES (13,5,'Translated Works','世界名著',NULL,2);
INSERT INTO d_d_category VALUES (14,1,'School','校园',NULL,3);
INSERT INTO d_d_category VALUES (15,2,'Love','爱情/情感',NULL,3);
INSERT INTO d_d_category VALUES (16,3,'Grow Up','叛逆/成长',NULL,3);
INSERT INTO d_d_category VALUES (17,4,'Fantasy','玄幻',NULL,3);
INSERT INTO d_d_category VALUES (18,5,'Original','原创',NULL,3);
INSERT INTO d_d_category VALUES (19,1,'Political','政治',NULL,4);
INSERT INTO d_d_category VALUES (20,2,'Economic','经济',NULL,4);
INSERT INTO d_d_category VALUES (21,3,'Law','法律',NULL,4);
INSERT INTO d_d_category VALUES (22,4,'Philosophy','哲学',NULL,4);
INSERT INTO d_d_category VALUES (23,5,'History','历史',NULL,4);
INSERT INTO d_d_category VALUES (24,1,'Commen Management','管理学',NULL,5);
INSERT INTO d_d_category VALUES (25,2,'Strategic Management','战略管理',NULL,5);
INSERT INTO d_d_category VALUES (26,3,'Marketing','市场营销',NULL,5);
INSERT INTO d_d_category VALUES (27,4,'Business History','商业史传',NULL,5);
INSERT INTO d_d_category VALUES (28,5,'E-Business','电子商务',NULL,5);
INSERT INTO d_d_category VALUES (29,1,'0-2','0-2岁',NULL,6);
INSERT INTO d_d_category VALUES (30,2,'3-6','3-6岁',NULL,6);
INSERT INTO d_d_category VALUES (31,3,'7-10','7-10岁',NULL,6);
INSERT INTO d_d_category VALUES (32,4,'11-14','11-14岁',NULL,6);
INSERT INTO d_d_category VALUES (33,5,'Child Literature','儿童文学',NULL,6);
INSERT INTO d_d_category VALUES (34,1,'English','英语',NULL,7);
INSERT INTO d_d_category VALUES (35,2,'Japanese','日语',NULL,7);
INSERT INTO d_d_category VALUES (36,3,'Korean','韩语',NULL,7);
INSERT INTO d_d_category VALUES (37,4,'Russian','俄语',NULL,7);
INSERT INTO d_d_category VALUES (38,5,'German','德语',NULL,7);
INSERT INTO d_d_category VALUES (39,1,'Computer Theory','计算机理论',NULL,8);
INSERT INTO d_d_category VALUES (40,2,'Database','数据库',NULL,8);
INSERT INTO d_d_category VALUES (41,3,'Programming','程序设计',NULL,8);
INSERT INTO d_d_category VALUES (42,4,'Artificial Intelligence','人工智能',NULL,8);
INSERT INTO d_d_category VALUES (43,5,'Computer Examination','计算机考试',NULL,8);
##############################################################################################################
XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
                                   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="myself.qin.domain">
<class name="Category" table="d_d_category">
<id name="id" type="integer" column="id" length="10">
<generator class="native" />
</id>
<property name="ename" column="en_name" type="string"
not-null="true" length="200" />
<property name="cname" column="name" type="string" not-null="true"
length="200" />
<property name="description" column="description" type="string"
length="200" />
<property name="parentId" column="parent_id" type="integer"
length="10" />
<list name="subCategory" lazy="false" cascade="all">
<key column="parent_id" />
<!--base=1与表里的顺序是一致的  -->
<list-index column="turn" base="1" />
<one-to-many class="AllCategory" />
</list>
</class>
</hibernate-mapping>
##############################################################################################################
实体类:
package myself.qin.domain;
import java.io.Serializable;
import java.util.List;import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;@Entity
@Table(name = "d_d_category")
public class Category implements Serializable {
private static final long serialVersionUID = 1L;
public static int BOOK_CAT = 1;
private Integer id; @Id
@GeneratedValue
public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} private Integer turn;
@Transient
public Integer getTurn() {
return turn;
} public void setTurn(Integer turn) {
this.turn = turn;
} private String ename; @Column(name = "en_name")
@Basic
public String getEname() {
return ename;
} public void setEname(String ename) {
this.ename = ename;
} private String cname; @Column(name = "name")
@Basic
public String getCname() {
return cname;
} public void setCname(String cname) {
this.cname = cname;
} private String description;
@Column
@Basic
public String getDescription() {
return description;
} public void setDescription(String description) {
this.description = description;
} private Integer parentId;
@Column(name="parent_id")
@Basic
public Integer getParentId() {
return parentId;
} public void setParentId(Integer parentId) {
this.parentId = parentId;
} private List<?> subCategory;// 自连接
@JoinTable(name="d_d_category")
@JoinColumn(name="parent_id")
@OneToMany(fetch=FetchType.LAZY,
targetEntity=Category.class,
mappedBy="turn",
cascade={CascadeType.ALL}
)
public List<?> getSubCategory() {
return subCategory;
} public void setSubCategory(List<?> subCategory) {
this.subCategory = subCategory;
}
}