0

私のpersistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="first" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>database.first.entity.Grupe</class>
        <properties>
             <property name="javax.persistence.jdbc.url" value="jdbc:mysql://*****/first"/>
             <property name="javax.persistence.jdbc.password" value="*****"/>
             <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
             <property name="javax.persistence.jdbc.user" value="*****"/>
        </properties>
    </persistence-unit>
    <persistence-unit name="second" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>database.second.entity.Darbuotojas</class>
        <class>database.second.entity.Grupe</class>
        <properties>
              <property name="javax.persistence.jdbc.url" value="jdbc:mysql://*******/second"/>
              <property name="javax.persistence.jdbc.password" value="*****"/>
              <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
              <property name="javax.persistence.jdbc.user" value="*****"/>
        </properties>
    </persistence-unit>
</persistence>

ご覧のとおり、各永続ユニットに1 つのGrupeクラスがあります。しかし、@Entity同じGrupe名で 2 つのクラスを作成しようとすると (ただし、パッケージが異なるため、これは問題になりません)、NetBeans で次のエラーが表示されます。

Duplicated entity name. Class database.first.entity.Grupe is using the same name.

GrupeFirstGrupeSecondのような異なるクラス名を持つクラスを作成したくないため、この問題を解決できる注釈はありますか?

4

1 に答える 1

1

それらが異なる永続化ユニットにある場合は問題ありません。

true に設定してみてください。同じ jar ファイルにあるため、両方のクラスが検出される可能性があります。

クラスの名前を変更する代わりに、@Entity の名前を別の名前に設定することもできます。

于 2012-06-20T12:55:45.150 に答える