2016-04-10 18 views
-1

私は最近Hibernateを学んでいますが、基本的な概念はわかりますが、今は設計上の問題があります。すべての私の具体的なクラスは、インターフェイスを実装し、ここにコードです: パッケージcom;Hibernateインタフェースの多型マッピング

import javax.persistence.Entity; 

public interface Person { 
    public void setName(String name); 
    public String getName(); 
    public void setId(Integer id); 
    public Integer getId(); 
    public void setWeapon(Weapon weapon); 
    public Weapon getWeapon(); 
} 

`` ``

package com; 

import javax.persistence.Entity; 

public interface Weapon { 
    public void setSharpness(Integer sharpness); 
    public Integer getSharpness(); 
    public void setId(Integer id); 
    public Integer getId(); 
} 

`` ``

package com; 

import javax.persistence.*; 

@Entity 
@Table(name = "person_inf") 
public class PersonImpl implements Person{ 
    @[email protected](strategy = GenerationType.IDENTITY) 
    @Column(name = "person_id") 
    private Integer id; 
    @Column(name = "person_name") 
    private String name; 

    @OneToOne(targetEntity = Weapon.class) 
    @JoinColumn(name = "weapon_id",referencedColumnName = "weapon_id") 
    private Weapon weapon; 
setters and getters omitted 
} 

`` `` パッケージコム。

import javax.persistence.*; 

@Entity 
@Table(name = "weapon_inf") 
public class WeaponImpl implements Weapon { 
    @[email protected](strategy = GenerationType.IDENTITY) 
    @Column(name = "weapon_id") 
    private Integer id; 
    @Column(name = "weapon_sharpness") 
    private Integer sharpness; 
    setters and getters omitted 
} 

私は休止プログラムを(人のインスタンスを保存)しようとすると、それは

org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.PersonImpl.weapon references an unknown entity: com.Weapon 

をスローするにはこの問題を解決するためのソリューションや注釈はありますか?

答えて

1

エンティティクラスがWeaponImplであるためWeaponの代わりにWeaponImplを参照する必要があります。あなたの代わりにこのようなWeaponWeaponImplを使用してみてください

@OneToOne 
@JoinColumn(name = "weapon_id",referencedColumnName = "weapon_id") 
private WeaponImpl weapon; 
+0

はありがとうございます。それは修正されました – user2716189

1

をフィールド与え

@OneToOne(targetEntity = WeaponImpl.class) 
+0

ありがとう、それは修正されました。 – user2716189

関連する問題