是否可以将Map的值分为两种类型?

时间:2019-05-07 07:30:34

标签: java spring-data-jpa

@Entity
@Getter
@Setter
@NoArgsConstructor
public class Notification {

    @Id
    private String id;
    private String name;
    private String tags;
    private String notificationType;
    @ElementCollection
    @MapKeyColumn(name = "notificationType")
    @Column(name = "value")
    @CollectionTable(name = "type_attributes", joinColumns = @JoinColumn(name = "notification_id"))
    private Map<String, Object> info;

}

我应按两种类型保存信息。 我的样本是这样的:

1. If key is A
info : {"A" : "A Value"}
2. If Key is B
info : {"B" : ["Item1", "Item2"]}

所以我不知道如何解决这个问题。 请提出哪种方法好。

5 个答案:

答案 0 :(得分:1)

尝试使用Multimap而不是Map

答案 1 :(得分:0)

如果要将不同类型的对象另存为值(例如,两者都是字符串),则可以使用数组作为值。 例如

private Map<String, Object> info;

答案 2 :(得分:0)

然后使用json。它将保持您的数据结构,并轻松获取您想要的价值。

vertical: true;

答案 3 :(得分:0)

只需使用“ Multimap”而不是“ Map”。

答案 4 :(得分:0)

我认为,解决您的问题的好方法是:

Multimap<String, String> myMultiMap = LinkedListMultimap.create();