hibernate一对多配置有关问题
hibernate一对多配置问题
一方One,多方Many,我想配置一对多,但是stuid在many中同时又是主键,该怎么配置啊
------解决方案--------------------
1. 将这两个同名的实体的映射文件都要设置为auto-import="false";
2. 所有关于这两个实体的HQL,都需要明确指定其全限定名(如com.aaa.bbb.bbb)
import java.util.Set;
public class One {
private int stuid;
private String stuname;
private Set<Many> manys;
public Set<Many> getManys() {
return manys;
}
public void setManys(Set<Many> manys) {
this.manys = manys;
}
public int getStuid() {
return stuid;
}
public void setStuid(int stuid) {
this.stuid = stuid;
}
public String getStuname() {
return stuname;
}
public void setStuname(String stuname) {
this.stuname = stuname;
}
}
public class Many {
private int stuid;
private int score;
private One oner;
public One getOner() {
return oner;
}
public void setOner(One oner) {
this.oner = oner;
}
public int getStuid() {
return stuid;
}
public void setStuid(int stuid) {
this.stuid = stuid;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
<?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="com.pojo">
<class name="One" table="one" lazy="false"> <!-- 类对应一个表 -->
<id name="stuid" column="stuid">
<generator class="assigned" /> <!-- 主键的生成策略 -->
</id>
<property name="stuname"/>
<set name="manys" lazy="false" cascade="all">
<key column="stuid"></key>
<one-to-many class="Many" />
</set>
</class>
</hibernate-mapping>
<?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="com.pojo">
<class name="Many" table="many" lazy="false"> <!-- 类对应一个表 -->
<id name="stuid" column="stuid">
<generator class="assigned" /> <!-- 主键的生成策略 -->
</id>
<property name="score"/>
<many-to-one name="oner" class="One" cascade="all"
lazy="false">
<column name="stuid"></column>
</many-to-one>
</class>
</hibernate-mapping>
一方One,多方Many,我想配置一对多,但是stuid在many中同时又是主键,该怎么配置啊
------解决方案--------------------
1. 将这两个同名的实体的映射文件都要设置为auto-import="false";
2. 所有关于这两个实体的HQL,都需要明确指定其全限定名(如com.aaa.bbb.bbb)