У меня есть полиморфная связь, представленная интерфейсом commentable
. Комментарии могут быть нацелены как на посты, так и на другие комментарии.
Я могу представить сторону комментария этих отношений, извлекая целевой пост, но я не могу представить сторону поста, например. Я не могу получить комментарии к посту.
Я использую @Any для полиморфизма, но если это не правильный способ сделать это, то я с радостью изменю направление.
Если у меня есть только код комментария, все работает нормально
// Comment.java
@Any(
metaDef = "CommentableMetaDef",
metaColumn = @Column(name = "commentable_entity")
)
@JoinColumn(name = "commentable_id")
private Commentable target;
// Post.java
@OneToMany(mappedBy = "target", targetEntity = Comment.class)
private Set<Comment> comments;
^^ Это ломается.
Если это уместно, вот мой metaDef
внутри package-info.java
// package-info.java
@AnyMetaDef(name = "CommentableMetaDef", metaType = "string", idType = "int",
metaValues = {
@MetaValue(value = "COM", targetEntity = Comment.class),
@MetaValue(value = "POS", targetEntity = Post.class)
}
)
@AnyMetaDef(name = "ReactableMetaDef", metaType = "string", idType = "int",
metaValues = {
@MetaValue(value = "COM", targetEntity = Comment.class),
@MetaValue(value = "POS", targetEntity = Post.class)
}
)