0

と の 2 つのクラスがFurnitureありPaintingます。それらは伸びていItemます。

アイテムには次のコードがあります:

@Entity
public class Item implements Comparable, Serializable {

    @Id @GeneratedValue(strategy= GenerationType.AUTO)
    private Long id;
    @ManyToOne 
    private User seller;
    @Embedded
    @AttributeOverrides({
     @AttributeOverride(name = "description",
        column = @Column(name = "c_description"))})
    private Category category;
    private String description;

    public Item() {
    }

    public Item(User seller, Category category, String description) {
        this.seller = seller;
        this.category = category;
        this.description = description;
        this.seller.addItem(this);
    }

ペイントには次のコードがあります。

@Entity
public class Painting extends Item {

    private String title;
    private String painter;

    public Painting() {

    }

    public Painting(String title, String painter, User seller, Category category, String description) {
        super(seller, category, description);
        this.title = title;
        this.painter = painter;
    }

家具には次のコードがあります。

@Entity
public class Furniture extends Item {

    private String material;

    public Furniture() {

    }

    public Furniture(String material, User seller, Category category, String description) {
        super(seller, category, description);
        this.material = material;
    }

以前、Itemオブジェクトを永続化するコードをいくつか試しました。それはうまくいきました。Painting今、エンティティ マネージャーを介してオブジェクトを永続化しようとしています。次のエラーが表示されます。

オブジェクト:uction.domain.Furniture@5d3468fd は既知のエンティティ タイプではありません。

おそらくクラスで、何かを忘れたか、何か間違ったことをしたようPaintingです。どうなり得るか?

4

1 に答える 1

0

Persistence Unit を更新するのを忘れていました。Furnitureクラスとクラスを追加した後Painting、情報がデータベースに入りました。上記のコードは正しいです。

于 2013-01-08T18:49:29.963 に答える