1

我想使用 JPA 和 Hibernate 创建一个映射类。对于它的大多数属性,该类使用多语言属性。例如,它希望在语言 LanA 和 Language 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。

有没有办法这样做?

4

1 回答 1

0

假设您想根据嵌入组件的人员来更改长度,那么可以。您的消费者可以为列@Embeddable定义一个。@AttributeOverride像这样的东西:

    @Embedded
    @AttributeOverrides( {
        @AttributeOverride(name="aStr", column = @Column(length=250) ),
        @AttributeOverride(name="lStr", column = @Column(length=900) )
    } )
    private MultiLingualTO multiLingualTO;

请参阅 Hibernate Annotations 文档http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#d0e714中的“2.2.2.4. Embedded objects (aka components)”

length是一个整数。

于 2012-05-22T12:13:50.580 回答