浏览 457 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-10-15
关系
SingleSinger extends Singer Band extends CompositeSinger entends Singer CompositeSinger、Band和Singer又是一对多的关系 ,使用Table Per class hierarchy怎么写映射文件 代码:
package edu.jlu.fuliang.domain;
import java.util.HashSet;
import java.util.Set;
//歌手
public class Singer {
private String region;
private Long id;
private Set<Song> songs = new HashSet<Song>();
public String getRegion() {
return region;
}
public void setRegion(String region) {
this.region = region;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Set<Song> getSongs() {
return songs;
}
public void setSongs(Set<Song> songs) {
this.songs = songs;
}
}
package edu.jlu.fuliang.domain;
//单人歌手
public class SingleSinger extends Singer {
private String name;
private char sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
}
package edu.jlu.fuliang.domain;
import java.util.HashSet;
import java.util.Set;
//组合歌手
public class CompositeSinger extends Singer {
private Set<SingleSinger> singleSingers = new HashSet<SingleSinger>();
public Set<SingleSinger> getSingleSingers() {
return singleSingers;
}
public void setSingleSingers(Set<SingleSinger> singleSingers) {
this.singleSingers = singleSingers;
}
}
package edu.jlu.fuliang.domain;
//乐队
public class Band extends CompositeSinger {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2007-10-15
我这么配置的,大家看看对不对,不知道什么原因在我这,连xml validator都没有通过,第17行就有个红叉,说没找到</class>,前面的标签开闭也没见到有错.本人纯新手级别的,呵呵.
<?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="edu.jlu.fuliang.domain"> <class name="Singer" abstract="true"> <id name="id" type="java.lang.Long"> <column name="SINGER_ID"/> <generator class="identity"/> </id> <discriminator column="TYPE" type="java.lang.String"/> <property name="region" type="java.lang.String"/> <column name="REGION"/> </property> <set name="songs" table="SONG" inverse="true" cascade="save-update"> <key column="SINGER_ID"/> <one-to-many class="Song"/> </set> <subclass name="SingleSinger" descriminator-value="1"> <property name="name" type="java.lang.String"> <column name="NAME"/> </property> </subclass> <subclass name="CompositeSinger" descriminator-value="2"> <set name="singleSingers" table="SINGER" cascade="save-update"> <key column="COMPSITESINGER_ID"></key> <one-to-many class="SingleSinger"/> </set> </subclass> <subclass name="Band" descriminator-value="3" > <set name="singleSingers" table="SINGER" cascade="save-update"> <key column="BAND_ID"></key> <one-to-many class="SingleSinger"/> </set> </subclass> </class> </hibernate-mapping> |
|
| 返回顶楼 | |



