java - 无法处理托管/反向引用 'defaultReference' : no back reference property found

标签 java json spring rest

我有两个模型类。一个是

@Entity(name = "userTools")
@Table(uniqueConstraints = @UniqueConstraint(columnNames = { "assignToUser_id","toolsType_id" }))
@Inheritance(strategy = InheritanceType.JOINED)
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "className")
@JsonIgnoreProperties(ignoreUnknown = true)
public class UserTools {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @OneToOne
    private ToolsType toolsType;

    @OneToMany(mappedBy = "userTools", fetch = FetchType.EAGER, cascade = { CascadeType.ALL }, orphanRemoval = true)
    @Cascade(org.hibernate.annotations.CascadeType.DELETE)
    @JsonManagedReference
    private List<UserToolsHistory> userToolsHistory;
}

第二个是

@Entity(name = "userToolsHistory")
@JsonIgnoreProperties(ignoreUnknown = true)
public class UserToolsHistory {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @OneToOne
    private ToolsType toolsType;

    @ManyToOne
    @JsonIgnore
    @JsonBackReference
    private UserTools userTools; 

    private String comments;
}

但是在保存时我收到了这个错误:

Can not handle managed/back reference 'defaultReference': no back
reference property found from type [collection type; class
java.util.List, contains [simple type, class
com.dw.model.tools.UserToolsHistory]]

最佳答案

为了方便排查问题,可以为@JsonManagedReference@JsonBackReference分别添加不同的名称,例如:

@JsonManagedReference(value="userToolsHistory")
    private List<UserToolsHistory> userToolsHistory;

这样错误更有意义,因为它打印引用名称而不是“defaultReference”。

请指出您要序列化哪个实体 - UserToolsUserToolsHistory?无论如何,您可以尝试向您的实体添加 getter 和 setter,然后将 @JsonIgnore 添加到“child”类中的“get{Parent}()”。

关于java - 无法处理托管/反向引用 'defaultReference' : no back reference property found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37365556/

相关文章:

java - Arraylist toString() 方法和重复值

Java自定义组件像素颜色

java - 如何让Android studio内嵌JDK使用本地文档路径

java - Gradle 多模块项目编译失败,来自子模块中提到的依赖项的 "classNotFoundExceptions"

java - 编码问题 - 我认为 UTF-8 被视为 ISO-8859-1

java - 为什么使用 OkHttp 时会出现 java.net.SocketTimeoutException?

php - 在 PHP 中访问没有名称的数组

javascript - 将字符串转换为 Json - javascript

javascript - JSON:为什么正斜杠转义?

spring - Hibernate 与 Spring 的集成在 hippo cms 站点项目中不起作用