Hibernate 休眠条件:添加对集合的限制

Hibernate 休眠条件:添加对集合的限制,hibernate,Hibernate,我有两个类作为实体类 CREATE TABLE EMPLOYEE ( EMP_ID INTEGER(5) PRIMARY KEY DEFAULT 1, EMP_NAME VARCHAR(30) NOT NULL ); CREATE TABLE PHONENUMBER ( PH_NUMBER VARCHAR(10) NOT NULL, PH_NUMBER_TYPE VARCHAR(10), EMP_ID INTEGER(5) NOT NULL, FOREIGN KEY (EMP_ID) REF

我有两个类作为实体类

CREATE TABLE EMPLOYEE (
EMP_ID INTEGER(5) PRIMARY KEY DEFAULT 1,
EMP_NAME VARCHAR(30) NOT NULL

);

CREATE TABLE PHONENUMBER (
PH_NUMBER VARCHAR(10) NOT NULL,
PH_NUMBER_TYPE VARCHAR(10),
EMP_ID INTEGER(5) NOT NULL,
FOREIGN KEY (EMP_ID) REFERENCES EMPLOYEE (EMP_ID)
);
下面是hibernate中Employee和PhoneNumber之间的xml映射

public class PhoneNumber{
   private String phoneNo;
   private String phNoType;
}
我如何才能实现它?

这就足够了:

List results = session.createCriteria(Employee.class)
               .add( Restrictions.eq("empId", 101) )
               .createCriteria("phNoSet") 
               .add( Restrictions.eq("phNoType", "residential") )
               .list();

<hibernate-mapping>
<class name="Employee" table="EMPLOYEE">
    <meta attribute="class-description">
       This class contains the portal detail. 
    </meta>
    <id name="empi\Id" type="string">
    <column name="emp_id" sql-type="char(32)"/>
    <generator class="uuid"/>
    </id> 
    <property name="empName" column="emp_name" type="string"  not-null="true"/> 
    <set name="phNoSet" table="PHONENUMBER">
     <key column="empId"/>
      <composite-element class="PortalL10n">
        <property name="phoneNo" column="ph_number" type="string" not-null="true"/>
        <property name="phNoType" column="ph_nmber_type" type="string" not-null="true" />
         </composite-element>
    </set>
 </class>
</hibernate-mapping>
List results = session.createCriteria(Employee.class)
               .add( Restrictions.eq("empId", 101) )
               .createCriteria("phNoSet") 
               .add( Restrictions.eq("phNoType", "residential") )
               .list();
List results = session.createCriteria(Employee.class)
               .add( Restrictions.eq("empId", 101) )
               .add( Restrictions.eq("phNoSet.phNoType", "residential") )
               .list();
List results = session.createCriteria(Employee.class)
               .add( Restrictions.eq("empId", 101) )
               .createAlias("phNoSet", "p")
               .add( Restrictions.eq("p.phNoType", "residential") )
               .list();