2012-05-22 2 views
1

JPA와 최대 절전 모드를 사용하여 매핑 된 클래스를 만들고 싶습니다. 대부분의 속성에 대해이 클래스는 다국어 속성을 사용합니다. 예를 들어, 언어 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

구성 요소를 포함시키는 사람을 기준으로 길이를 변경한다고 가정하고 예. @Embeddable의 사용자는 열에 @AttributeOverride을 정의 할 수 있습니다. 이런 식으로 뭔가 : ". 2.2.2.4 포함 된 개체 (일명 구성 요소)"

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

참조 최대 절전 모드 주석 문서 http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#d0e714

length의 정수입니다.

관련 문제