问题描述
我正在尝试做一件非常简单的事情,但是作为一个初学者,我不确定我所看到的是否是期望的。
我在两个表之间有一个简单的关系,它们之间有一个@ManyToMany关系。作为一个学习项目,我正在构建一个pastebin,它需要使用Quarkus,Hibernate和Panache将粘贴链接到标签。
在粘贴方面,我有
@ManyToMany
@JoinTable(name = "paste_tag",joinColumns = @JoinColumn(name = "paste_id",referencedColumnName = "id"),inverseJoinColumns = @JoinColumn(name = "tag_id",referencedColumnName = "id"))
@JsonIgnoreProperties("pastes")
private Set<Tag> tags = new HashSet<>();
并在“标签”端:
@ManyToMany(mappedBy = "tags")
public Set<Paste> pastes = new HashSet<>();
这-及其周围的代码-似乎运行良好,我可以按一下/ api / pastes端点(调用listAll()
)并获取预期的数据。好吧,差不多。
我插入了三个带有三个示例标签的示例粘贴。我注意到的是,当我调用/ api / pastes时,我得到了:
[
{
"id": 1,"name": "/etc/hosts","path": "/etc/hosts","content": "this is /etc/hosts","account": {
"id": 1,"user_name": "wzzrd"
},"language": "text","encrypted": false,"privacy": 2,"tags": [
{
"@id": 1,"id": 1,"name": "configfile"
}
]
},{
"id": 2,"name": "/etc/fstab","path": "/etc/fstab","content": "this is /etc/fstab","privacy": 1,"tags": [
1,{
"@id": 2,"id": 2,"name": "fstab"
}
]
},[...]
我的困惑在于第二个粘贴的标签。它显示的ID为2的标签很好('fstab'),但是ID为1的标签这次仅由id引用,这似乎是因为在第一次粘贴时已经提到过。
对于高级专家来说,这可能是一个愚蠢的“ duh”类型的问题,但是我很难弄清楚这是否是预期的行为,如果是这样,我如何确保每次粘贴时都得到带有其名称的所有标签?
我在该主题上阅读的所有内容都显示了如何建立关系,但是都没有显示输出示例
要谦虚;)如果需要显示更多代码,我会很乐意这样做。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)