实体没有定义主键属性

时间:2016-11-05 19:00:42

标签: java xml hibernate jpa orm

我是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>

1 个答案:

答案 0 :(得分:0)

你的XML是错的,就像链接一样(现在已经更正了 - 请参阅JPA规范,了解不是维基的事实,而且容易出错)。

embedded-id应位于attributes元素下,embedded-id中的属性名称为name,而不是class。请参阅http://xmlns.jcp.org/xml/ns/persistence/orm_2_1.xsd

处的XSD架构