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