Ich lerne Hibernate vor kurzem, die grundlegenden Konzepte sind klar für mich, aber ich habe jetzt ein Design-Problem. Alle meine konkreten Klassen implementieren Schnittstellen, hier ist der Code: Paket com;Hibernate Interface Polymorphie Mapping
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
}
`` `` Paket com;
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
}
Wenn ich versuche, das Hibernate-Programm (eine Person, die Instanz speichern), es wirft
org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.PersonImpl.weapon references an unknown entity: com.Weapon
Gibt es eine Lösung oder eine Anmerkung, dieses Problem zu lösen?
Danke. es ist behoben – user2716189