Hibernate 如何在一对多映射中获取单行
} Atom.hbm.xmlHibernate 如何在一对多映射中获取单行,hibernate,Hibernate,} Atom.hbm.xml public class Atom implements java.io.Serializable { private Integer id; private String name; //getter and setter } <hibernate-mapping> <class name="test.Atom" table="atom" catalog="xrcwrn_sms"> <id name="id
public class Atom implements java.io.Serializable {
private Integer id;
private String name;
//getter and setter
}
<hibernate-mapping>
<class name="test.Atom" table="atom" catalog="xrcwrn_sms">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity"></generator>
</id>
<property name="name" type="string">
<column name="name" length="200" unique="true" />
</property>
</class>
</hibernate-mapping>
ProfilePic.hbm.xml
public class Atom implements java.io.Serializable {
private Integer id;
private String name;
//getter and setter
}
<hibernate-mapping>
<class name="test.Atom" table="atom" catalog="xrcwrn_sms">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity"></generator>
</id>
<property name="name" type="string">
<column name="name" length="200" unique="true" />
</property>
</class>
</hibernate-mapping>
我只想从ProfilePic
中获取一行。
Atom
和ProfilePic
具有一对多映射(一个Atom可以具有多个ProfilePic)
如何映射。您尚未在
hbm.xml
文件中定义关系。请做以下更改
Atom.hbm.xml
ProfilePic.java
相关链接
您需要分享更多关于您的问题的信息
从ProfilePic获取一行
。我不太清楚。最好的解决方案可能是在业务方法后面编写一个自定义查询(HQL/native SQL)。我刚开始学习这一点。@bellabax请用它的HQL queryNope解释一下,太长了。和你的问题没有关系。你在学习HQL吗?只要研究和尝试自己,回来时,你可以更准确地比一个“如何地图”,我们将很乐意帮助你!享受我想从表中提取一行,以一对多的关系
<hibernate-mapping>
<class name="test.Atom" table="atom" catalog="xrcwrn_sms">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity"></generator>
</id>
<property name="name" type="string">
<column name="name" length="200" unique="true" />
</property>
<set name="profilePics" table="profile_pic" inverse="true" lazy="true" fetch="select">
<key>
<column name="aid" not-null="true" />
</key>
<one-to-many class="test.ProfilePic" />
</set>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="test.ProfilePic" table="profile_pic" catalog="xrcwrn_sms">
<id name="picId" type="string">
<column name="pic_id" length="200" />
<generator class="assigned" />
</id>
<many-to-one name="atom" class="test.Atom" fetch="select">
<column name="aid" />
</many-to-one>
<property name="profilePicPath" type="string">
<column name="profile_pic_path" length="1000" />
</property>
<property name="smallPicPath" type="string">
<column name="small_pic_path" length="1000" />
</property>
<property name="adddate" type="string">
<column name="adddate" length="100" />
</property>
</class>
</hibernate-mapping>
public class Atom implements java.io.Serializable {
private Integer id;
private String name;
private Set profilePics = new HashSet(0);
//constructor, getter and setter
}
public class ProfilePic implements java.io.Serializable {
private String picId;
private String profilePicPath;
private String smallPicPath;
private String adddate;
private Atom atom;
//constructor, getter and setter
}