Hibernate映射列表中的不同类

时间:2015-06-18 18:58:11

标签: java hibernate hibernate-mapping

我有类似下面的课程结构

class Animal{
int animalId;
Dogs dogs;

//setters and getters
}

class Dogs{
List<Dog> dogs;
getDogsList(){
...
}
setDogsList(){
...
}
}

class Dog{
int animalId;
String name;
}

现在我必须在不同类Dogs中的Animal和List实体之间映射oneToMany。我知道这是一个糟糕的设计,但我必须处理它。 理想情况下应该是

class Animal{
int animalId;
List<Dog> dogs;
//setters and getters
}

但所有这些pojos都来自一个我无法修改的xml文件。我有什么方法可以在Animal和Dog之间映射oneToMany(忽略类Dogs)?

1 个答案:

答案 0 :(得分:0)

你可以这样做:

@Entity
public class Animal {

    @Id
    protected long animalId;

    @Transient
    protected Dogs dogs;

    public Animal() {
       this.dogs = new Dogs();
    }

    @Access(AccessType.property)
    public List<Dog> getDogs() {
        return dogs.getDogList();
    }

    public void setDogs(List<Dog> dogs) {
        this.dogs.setDogList(dogs);
    }
}