2017-07-05 18 views
1

次のコードでは、実際にはenumのフィールドshopTypeがあります。私のシナリオでは、ショップABCには複数のタイプの食料雑貨品や薬局があります私はenumのリストを私のデータベースに別のテーブルに保存したいのですが、2つのカラムがshop_idで、その他がshop_typeなので、1つのショップで複数のタイプを持つことができます。春データ:列挙型リストをmySQLデータベースに格納する方法

ここ

が私のコードである

ShopDetail.java

@Entity 
public class ShopDetail { 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Long id; 

    private String name; 

    private String address; 

    private Double latitude; 

    private Double longitude; 

    private float rating; 

    private Time openingTime; 

    private Time closingTime; 



    @Enumerated(EnumType.STRING) 
    private Collection<ShopType> shopType; 


    @Column(columnDefinition=" bit(1)default 1") 
    private boolean shopEnabled = true; 

    //getters and setters 
    } 

ShopType

public enum ShopType { 

    GROCERY, 
    PHARAMACY 
} 
+0

あなたはShopTypeとShopDetailへの参照を含む新しいエンティティ(新規クラス)を作成し、ShopDetailから@OneToManyでそれをマップできます。 – Michal

+0

@Michalいいえ完了しました – SFAH

答えて

1

これは動作するはずです:

@ElementCollection(targetElement = ShopType.class) 
@JoinTable(name = "tblShopTypes", joinColumns = @JoinColumn(name = "id")) 
@Column(name = "shopType", nullable = false) 
@Enumerated(EnumType.STRING) 
Collection<ShopType> shopTypes; 

REF:this answer

+0

はいそれは動作します: ')私はこの答えをすでに見ました しかしありがとう – SFAH

関連する問題