gpt4 book ai didi

java - 当我尝试在 hibernate 中创建两个主键时,我陷入困境

转载 作者:太空宇宙 更新时间:2023-11-04 13:47:19 24 4
gpt4 key购买 nike

我的出勤率是这样的

public class Attendance  implements Serializable
{
private Integer id,userId;
private Date date;
private OfficeTime officeTime;
private Set<TimeSlice> timeSlices;
public Attendance()
{

}
}

现在我尝试使用hibernate映射composite-id创建两个主键

 <hibernate-mapping>
<class name="Attendance">
<composite-id>
<key-property name="id"><generator class="increment"/></key-property>
<key-property name="date" />
</composite-id>

<property name="userId" />

<set name="timeSlices" cascade="all" >
<key column="attendanceId" />
<one-to-many class="TimeSlice" />
</set>

<many-to-one name="officeTime" class="OfficeTime"
column="office_id" unique="true" not-null="true"
cascade="all" />

</class>

</hibernate-mapping>

当我这样做时,我收到错误元素类型“key-property”的内容必须匹配“(meta*,column*,type?)”。如何设置两个主键,其中一个必须自动递增。先谢谢了。

最佳答案

您当前的配置不遵循为composite-id 元素设置的架构。以下是复合 id 的架构文档:

<composite-id name="propertyName" class="ClassName" mapped="true|false" access="field|property|ClassName"> node="element-name|." <key-property name="propertyName" type="typename" column="column_name"/> <key-many-to-one name="propertyName class="ClassName" column="column_name"/> ...... </composite-id>

这是一个示例配置:

<composite-id>
<key-many-to-one name="username" class="org.myclass.UserDB" column="user_name"/>
<key-property name="role" type="string" column="role_name"/>
</composite-id>

相关文档位于:https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/mapping.html#mapping-declaration-compositeid

关于java - 当我尝试在 hibernate 中创建两个主键时,我陷入困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30702567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com