2017-11-02 6 views
-1

다음과 같이 테이블 엔티티 클래스에서 사용하고자하는 국가의 목록이 있습니다. 키 을 위해 미국을 사용하고 데이터가 저장 될 때 미국이 선택할 수 :KEY 값 쌍으로 열거 형 정의하기

package com.danieladenew.webproject.enums; 


public enum CountryEnum { 

    AMERICA("United States Of America"), 
    UK("United Kingdom"), 
    ; 

    private String name; 

    CountryEnum(String s) { 
    } 

    @Override 
    public String ToString() { 


    } 
} 

@Entity 
@Table 
public class Exchange 
{ 

@Column(name="COUNTRY OF ORIGIN") 
@Enumerated(EnumType.STRING) 
private CountryEnum countryofOrigin; 
. 
. 


} 

그러나, 나는 예를 들어 가지고 있는지 이해할 수 없어요? 이 링크를 기반으로

답변

1

:

http://webdev.jhuep.com/~jcs/ejava-javaee/coursedocs/605-784-site/docs/content/html/jpa-entityex-enum.html

는 게터/세터 정의는 국가의 속성에 액세스 JPA에 의해 사용된다. CountryEnum 열거 형을 받아 들여 반환하기 때문에 getCountryOfOrigin/setCountryOfOrigin 메서드와 별개로이 메서드를 정의했습니다. 이러한 메서드는 공급자와 문자열을 반환하는 계약을 맺습니다. 이 경우 기본 열 이름 지정 규칙이 작동하지 않기 때문에 사용할 데이터베이스 열 이름도 공급자에게 알려야합니다.

@Access(AccessType.PROPERTY) 

    @Column(name="COUNTRY OF ORIGIN", length=32) 

    protected String getDBCountryOfOrigin() { 

     return countryofOrigin==null ? null : countryofOrigin.name; 

    } 

    protected void setDBCountryOfOrigin(String dbValue) { 

     countryofOrigin = CountryEnum.getName(dbValue); 

    } 

그리고 당신은 당신의 열거에이 방법을 추가 할 필요가

public static CountryEnum getName(String prettyName) { 

      for (CountryEnum country : values()) { 

       if (country.name.equals(prettyName)) { 

        return country; 

       } 

      } 

      return null; 

     }