如何将字符串数组嵌入实体(JPA)

时间:2010-02-24 10:12:22

标签: java hibernate jpa arrays entity

我想设计一个具有String []属性的实体类。这个字符串数组总是有两个值,我不希望Hibernate(或者更确切地说是JPA)为此创建一个额外的表,但是将这两个String值直接嵌入到表中。 这是可能的,如果是这样的话?

2 个答案:

答案 0 :(得分:4)

如果总有两个值,则可以使用getter / setter和实例变量。您确实可以选择是使用@Column映射实例变量还是属性。

@Column
String s1;

@Column
String s2;

public String[] getProp()
{
  return new String[]{ s1, s2 };
}

public String setProp(String[] s )
{
   s1 = s[0];
   s2 = s[1];
}

否则请查看@Embedded实体。

的精神
@Entity
public class MyEntity {

    @Embedded
    public StringTuple tuple;

}

public class StringTuple {
    public String s1;
    public String s2;
}

答案 1 :(得分:1)

如果这个数组总是有两个元素,为什么不简单地创建一个类来保存它们而不是将该类映射为Component