如何在Hibernate中将对象注释为字符串映射

时间:2015-06-30 15:05:11

标签: hibernate jpa hibernate-mapping

我有两个对象:实体和辅助。 实体包含辅助字符串的映射。它还有一个复合键。

我的映射与JDO一起工作,但现在(过去)时间转移到JPA。

我无法弄清楚如何编写注释以使其有效,

数据库中有三个包含数据的表。

<script>$('form[name="form1"]').submit();</script>

我正在运行Hibernate 4.2.19

主要班级:

desc map_table
Name       Null     Type         
---------- -------- ------------ 
ENTITYID     NOT NULL VARCHAR2(12) 
ENTITYSOURCE NOT NULL NUMBER(1)    
SECONDARYID  NOT NULL VARCHAR2(20) 
VALUE        NOT NULL VARCHAR2(16) 

desc entity
Name       Null     Type         
---------- -------- ------------ 
ID     NOT NULL VARCHAR2(12) 
SOURCE NOT NULL NUMBER(1)    
.....

desc secondary
Name       Null     Type         
---------- -------- ------------ 
ID     NOT NULL VARCHAR2(12) 
name            NUMBER(1)    

以下是我要留下的 JDO 映射:

@Entity
@Table(name="ENTITY")
public class Entity
{
    @EmbeddedId
    private EntityKey key;

    @SomehtingIHavntFiguredOut
    private Map<Secondary, String> domainConfig = new HashMap<Secondary, String>(); 
}

1 个答案:

答案 0 :(得分:0)

我的解决方案

@ElementCollection
@CollectionTable(name="MAP_TABLE", joinColumns={
        @JoinColumn(name="entityid",referencedColumnName="id"),
        @JoinColumn(name="entitysource",referencedColumnName="source")
     })
@MapKeyJoinColumn(name="secondaryid")
@Column(name = "VALUE")
private Map<Secondary, String> domainConfig = new HashMap<Secondary, String>(); 

我不清楚何时使用@ElementCollection,以及何时使用@OneToMany。我认为因为值是基元正确的注释是@ElementCollection。