我是JPA的新手,我一直在努力解决这个错误。 Eclipse是"说"我的实体没有定义主键,但我读了一堆教程,这就是他们都这样做的方式。
示例:https://en.wikibooks.org/wiki/Java_Persistence/Identity_and_Sequencing#Example_embedded_id_XML
<?xml version="1.0" encoding="UTF-8" ?>
<entity-mappings version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd">
<entity name="BefriendableUser" class="com.projects.socialconnections.befriendableuser.BefriendableUser" access="FIELD">
<embedded-id class="com.projects.socialconnections.befriendableuser.BefriendableUserId"/>
</entity>
<embeddable name="BefriendableUserId" class="com.projects.socialconnections.befriendableuser.BefriendableUserId" access="FIELD">
<attributes>
<basic name="numId">
<column name="befriendable_user_id" />
</basic>
</attributes>
</embeddable>
</entity-mappings>
答案 0 :(得分:0)
你的XML是错的,就像链接一样(现在已经更正了 - 请参阅JPA规范,了解不是维基的事实,而且容易出错)。
embedded-id
应位于attributes
元素下,embedded-id
中的属性名称为name
,而不是class
。请参阅http://xmlns.jcp.org/xml/ns/persistence/orm_2_1.xsd