2017-01-10 2 views
0

私は現在、データを取り込んでMySQL DBに格納するSpring MVC設計アプリケーションでHibernateを使用しています。私は、モデルと列挙型が互いにマッピングされています。すべて正常に動作し、DBに格納されているデータは正しい(列挙型のORDINAL値を格納している)。ORDINALの代わりにSTRINGを表示するenumフィールド

しかし、CrudRepositoryのfindAll()メソッドを使用して結果を出力すると、正しい列挙値が表示されますが、ORDINAL形式ではなくSTRING形式になります。私が何を実現できるか、あるいはこれがどのようなものなのかについてのアイデアは何ですか?

以下

私がこれまで持っているかを示すためのコードの小さなスニペットです:

列挙(ラベル "カーズ"):

FORD, 
TOYOTA, 
CHEVY 

POJOスニペット(ラベル "ディーラー"):

@Enumerated(EnumType.ORDINAL) 
private Cars carType; 
//getters and setters 

( "DealershipDAO" とラベル付けされた)DAO:

コントローラ:私はデータを表示するためにMySQLのエディタを使用している場合(私は/データ読み込み要求を呼び出した後)

@Autowired 
private DealershipDao dao; 

@RequestMapping(value="/dataLoad") 
public String dataLoad() { 
    Dealership dealer = new Dealership(); 
    dealer.setCarType(Cars.FORD); 


    dao.save(dealer); 

    return "success"; 
} 

@RequestMapping(value="/findEverything", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET) 
public Iterable<Dealership> findAll() { 
    return dao.findAll(); 
} 

は今、ディーラーの表は、FORDのための列挙ORDINAL値を示しています。しかし、私は/ findEverythingリクエストを呼び出すと、値ではなく文字列、FORDを表示します。

答えて

1

jsonによってJSONに変換される方法は、JPAとは関係ありません。あなたは列挙を直列化する方法をジャクソンに伝える必要があります。たとえば、JsonFormat annotation

関連する問題