如何使用注解在Hibernate中映射一个“Map”?

27 浏览
0 Comments

如何使用注解在Hibernate中映射一个“Map”?

如何使用注解将实体中的字段映射为一个"Map"(Hashtable),其中键为String,值为给定对象?该对象已经使用Hibernate数据库进行了注释,并且它的实例已经存储在数据库中。

我找到了使用简单键和值定义映射的语法,如下所示:

@Entity
@Table(name = "foo")
public class Foo {
    ...
    @MapKeyColumn(name = "name")
    @ElementCollection
    @CollectionTable(name = "ages", joinColumns = @JoinColumn(name = "id"))
    @Column(name = "age")
    private Map ages;
    ...
}

奇怪的是,如果键是实体,值是简单类型,可以这样写:

@Entity
@Table(name = "foo")
public class Foo {
    ...
    @MapKeyColumn(name = "person_id")
    @ElementCollection
    @CollectionTable(name = "ages", joinColumns = @JoinColumn(name = "id"))
    @Column(name = "age")
    private Map ages;
    ...
}
@Entity
@Table(name = "person")
public class Person {
    ...
    @Column(name = "name")
    private String name;
    ...
}

但是我不知道如何将其用于简单的键到元素的映射,并且我也不知道如何使用注解来完成这个过程。

0