Hibernate 如果复合类在字段中包含类类型引用,则为复合键

Hibernate 如果复合类在字段中包含类类型引用,则为复合键,hibernate,hbmxml,Hibernate,Hbmxml,我有一个驾驶员等级: public class Driver { private String driverId; private String driverName; //getter and setter } 一个DriverEntry类用于存储驾驶员日常驾驶详细信息,DriverEntry类具有DriverEntryKey,其中包含作为驾驶员对象和日期对象的DriverEntryKey。 那么,如何在driver.hbm.xml文件中映射这些文件呢 pu

我有一个驾驶员等级:

 public class Driver {

    private String driverId;
    private String driverName;

    //getter and setter

}
一个DriverEntry类用于存储驾驶员日常驾驶详细信息,DriverEntry类具有DriverEntryKey,其中包含作为驾驶员对象和日期对象的DriverEntryKey。 那么,如何在driver.hbm.xml文件中映射这些文件呢

 public class DriverEntry {

    private DriverEntryKey key;
    private String startTime;
    private String endTime;
    //getter and setter

}

    public class DriverEntryKey implements Serializable{

    private Driver driver;
    private Date date;


}
   <class name="Driver" table="driver" >
    <id name="driverId" column="driver_id">
    <generator class="assigned"/>
    </id>
    <property name="driverName" column="prod_name" length="20"/>
    </class>


    <class name="DriverEntry" table="DriverEntry" >
    <composite-id name="key" class="DriverEntryKey">
    <key-property name="driver" type=""></key-property>
    <key-property name="date" type=""></key-property>        
    </composite-id>
    </class>
公共级出租汽车{
私钥;
私有字符串开始时间;
私有字符串结束时间;
//接二连三
}
公共类DriverEntryKey实现可序列化{
私人司机;
私人日期;
}

那么,在-->数据条目表中维护驱动程序(主键到外键)的内部我可以填充什么呢?

这就是您想要实现的吗

<class name="DriverEntry">

<composite-id name="id" class="DriverEntryKey">
    <key-property name="driverId"/>
    <key-property name="date" type="date"/>        
</composite-id>

<property name="name"/>

<many-to-one name="driver" class="Driver">
    <column name="driverId"/>
    // all other columns
</many-to-one>
....

</class>

//所有其他列
....
您必须根据自己的要求稍微调整答案


<class name="DriverEntry" >
        <composite-id name="key" class="DriverEntryKey">
            <key-many-to-one name="driver" class="Driver" column="driver_id"/>
            <key-property name="drivingDate" type="java.util.Date"></key-property>
        </composite-id>

        <property name="startTime" column="start_time" />
        <property name="endTime" column="end_time" />



    </class>