我想使用JPA和Hibernate创建一个映射类。对于其大多数属性,此类使用多语言属性。例如,它希望在语言LanA和语言LanB中都具有name属性。
@Embeddable
public class MultiLingualTO {
@Basic
@Column(updatable = true, length = 50, nullable = false, name = "aStr")
public String getLanAString() {
return lanAString;
}
public void setLanAString(String lanAString) {
this.lanAString= lanAString;
}
@Basic
@Column(updatable = true, length = 50, nullable = false, name = "lStr")
public String getLatinString() {
return latinStringh;
}
public void setLatinString(String latinStringh) {
this.latinStringh = latinStringh;
}
private String lanAString;
private String latinStringh;
}
但这些字符串的长度不同。默认值为50,但有时我想设置值250或900.
有办法吗?
答案 0 :(得分:0)
假设您想根据嵌入组件的人来更改长度,那么是。您@Embeddable
的消费者可能会为列定义@AttributeOverride
。像这样:
@Embedded
@AttributeOverrides( {
@AttributeOverride(name="aStr", column = @Column(length=250) ),
@AttributeOverride(name="lStr", column = @Column(length=900) )
} )
private MultiLingualTO multiLingualTO;
请参阅Hibernate Annotations文档中的“2.2.2.4。嵌入式对象(也称为组件)”http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#d0e714
length
是一个整数。