Hibernate 如何在一对多映射中获取单行

Hibernate 如何在一对多映射中获取单行,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

}

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" 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
}