我需要一个强大的数据模型来满足我的需求。我有3个实体,它们都是互相引用的。它们是“游戏”,“平台”,“类别”。一个游戏可以属于多个类别,也可以位于多个平台上。一个类别可以包含许多游戏,并且可以存在于许多平台中。一个平台可以具有许多游戏和类别。这些关系都是@ManyToMany。
我尝试使用哈希映射在有关实体中映射这些关系。
Game.java
@JoinTable(name = "GAME_PLATFORM_CATEGORY",
joinColumns = @JoinColumn(name = "GAME_ID"),
inverseJoinColumns = @JoinColumn(name = "CATEGORY_ID"))
@MapKeyJoinColumn(name = "PLATFORM_ID")
@ElementCollection
private Map<Platform, Category> categoriesByPlatform = new HashMap<>();
Category.java
@JoinTable(name = "GAME_PLATFORM_CATEGORY",
joinColumns = @JoinColumn(name = "CATEGORY_ID"),
inverseJoinColumns = @JoinColumn(name = "PLATFORM_ID"))
@MapKeyJoinColumn(name = "GAME_ID")
@ElementCollection
@JsonIgnore
private Map<Game, Platform> platformsByGame = new HashMap<>();
Platform.java
@JoinTable(name = "GAME_PLATFORM_CATEGORY",
joinColumns = @JoinColumn(name = "PLATFORM_ID"),
inverseJoinColumns = @JoinColumn(name = "GAME_ID"))
@MapKeyJoinColumn(name = "CATEGORY_ID")
@ElementCollection
@JsonIgnore
private Map<Category, Game> gamesByCategory = new HashMap<>();
添加游戏请求
{
"blockLink": true,
"categoriesByPlatform" : {
1:1
},
"descriptions": [
],
"gameLink": "string",
"name": "string",
"url": "string"
}
我希望每个对象实例中的映射中都有引用的对象。但是,当我尝试使用上面的请求添加游戏时,我得到HTTP415。如何解决此问题?还是我的方法完全错误?