Spring Data:如何在 mySQL 数据库中存储枚举列表

SFA*_*FAH 2 java mysql enums spring spring-data

在下面的代码中,我有一个shopType实际上是 a 的字段enum,在我的场景中,一家商店有多种类型,例如商店 ABC 的类型为杂货店和药房,所以我想enum在数据库中将列表存储在单独的表中,其中两个栏目中存在一种是,shop_id另一种是,shop_type这样一个商店可以有多种类型,我该怎么做?

这是我的代码

商店详情.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
    }
Run Code Online (Sandbox Code Playgroud)

店铺类型

public enum ShopType {

    GROCERY,
    PHARAMACY
}
Run Code Online (Sandbox Code Playgroud)

Leo*_*ard 5

这应该有效:

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

参考:这个答案