0

私はJPAの世界の初心者ですが、ここでこの問題に悩まされています。

私が試したのは、注釈付きエンティティからスキーマをエクスポートすることでした

    new SchemaExport(config).create(true, true);

そして、それは私にこのエラーを与えます

Exception in thread "main" org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: com.hidvd.entities.Customer.orders[com.hidvd.entities.Order]

Customer - Item - Order - OrderId という 4 つのエンティティがあります。

それらはすべて、1 対多および多対 1 の関係で接続されています。

ここにいくつかのコードがあります

@Entity
public class Customer {
    @Id
    @Column(name = "cust_id")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int custid;
    @Column(length = 50, nullable = false, unique = true)
    private String name;
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "customer")
    private List<Order> orders = new ArrayList<Order>();
}

@Entity(name = "item")
public class Item implements Serializable{
    public Item() {
        super();
    }

    @Id
    @Basic(optional = false)
    @Column(name = "item_id", unique = true, nullable = false)
    private int itemid;
    private String title;
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "item")
    private List<Order> orders = new ArrayList<Order>();



@Entity(name = "order")
@AssociationOverrides({
        @AssociationOverride(name = "customer",
                joinColumns = @JoinColumn(name = "cust_id")),
        @AssociationOverride(name = "item",
                joinColumns = @JoinColumn(name = "item_id")) })
public class Order implements Serializable {

    private OrderId pk = new OrderId();
    private Calendar orderedDate;


@Embeddable
public class OrderId implements Serializable{
    @ManyToOne
    private Customer customer;
    @ManyToOne
    private Item item;

アドバイスをいただければ幸いです。前もって感謝します :)

  • これがpersistence.xmlファイルです
<persistence-unit name="hidvddb">
    <jta-data-source>java:/MySQLDS</jta-data-source>
        <properties>
            <property name="showSql" value="true"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
        </properties>
    </persistence-unit>
</persistence>
4

2 に答える 2

0

次を追加する必要があります。

<mapping class="Your_class_name_here"/>

このような:

<mapping class="Customer"/>

persistence.xml で。

また、この素敵なチュートリアルもご覧ください

お役に立てれば !

于 2013-06-03T11:52:21.220 に答える