Spring Boot Hibernate枚举到boolean列的映射集

问题描述 投票:0回答:1

我在Spring Boot应用程序中有一个表单实体:

@Data
@Entity
public class Form {
    @Id
    private String caseId;
    private String leadingUnit;
    private Set<Addiction> currentAddictions;
}

成瘾是一个枚举:

public enum Addiction {
  Alcohol, Nicotine, Drugs
}

而且我想将整个表单映射到数据库中的一个表。具有以下各列:caseId,leadingUnit,currentAddictionsAlcohol,currentAddictionsNicotine和currentAddictionsDrugs。我希望currentAddictions *列为bo boolean,以仅指示当前上瘾是否存在于集合中。我一直在查看自定义UserType,但是我不知道该怎么做。有一个简单的解决方案吗?

java hibernate spring-boot nhibernate-mapping compositeusertype
1个回答
1
投票

这感觉不正确(将集合映射到布尔列)。但是这里有一些选择。我认为这两个选项都要求将单个布尔值映射到实体类中。我想非常清楚:映射此方法的正确方法是拥有一个瘾君子表,然后链接这些表。如果以后您想增加一个额外的依赖,这将成为插入新行而不是更改数据库的结构。

© www.soinside.com 2019 - 2024. All rights reserved.