【问题标题】:delete entity error in type删除类型中的实体错误
【发布时间】:2015-10-13 11:24:03
【问题描述】:

大家好,我在尝试删除实体时遇到错误

错误:

ERROR [io.undertow.request](默认任务 2)UT005023:异常 处理对 /updateUseranswers/11 的请求: org.lightadmin.core.view.exceptions.BadRequestException: org.springframework.web.util.NestedServletException:请求 处理失败;嵌套异常是 java.lang.IllegalArgumentException:参数值 [4] 不匹配 预期类型 [.entities.useranswers.UserAnswer (n/a)]

服务:

for (UserAnswerField prevUserAnswerField : userAnswerFieldRepo.getUserAnswerFields(userAnswer.getAnswerId())) {
    userAnswerFieldRepo.deleteUserAnswerField(prevUserAnswerField.getfieldId().intValue());     
}

回购:

public void deleteUserAnswerField(Integer answerId) {
    Query delQuery = getEntityManagerFactory().createQuery("delete from UserAnswerField sff where sff.userAnswerId=:answerId");
    delQuery.setParameter("answerId", answerId);
    delQuery.executeUpdate();
}

UserAnswer 实体:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "answer_id")
private Integer answerId;
@Basic(optional = false)
@NotNull
@Column(name = "user_id")

private int userId;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 500)
@Column(name = "label")
private String label;
@Basic(optional = true)
@Column(name = "insertion_date")
@Temporal(TemporalType.TIMESTAMP)
private Date insertionDate;
@Column(name = "is_active")
private Boolean isActive;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 20)
@Column(name = "type")
private String type;

@Transient
private List<UserAnswerField> answerFields;

UserAnswerField 实体:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "field_id")
private Integer fieldId;
@JoinColumn(name = "type_id")
@ManyToOne(optional = false,fetch = FetchType.EAGER,cascade=CascadeType.ALL)
private UserAnswerType typeId;
@JoinColumn(name = "answer_id", referencedColumnName = "answer_id")
@ManyToOne(optional = false,fetch = FetchType.EAGER,cascade=CascadeType.ALL)
private UserAnswer userAnswerId;
@Size(max = 500)
@Column(name = "field")
private String field;

【问题讨论】:

    标签: java spring hibernate


    【解决方案1】:

    试试where sff.userAnswerId.answerId = :answerId

    userAnswerId in UserAnswerFieldUserAnswer 类型;只需导航到它的 ID。

    【讨论】:

    • 谢谢德拉甘!我错过了
    猜你喜欢
    • 1970-01-01
    • 2015-04-29
    • 2013-11-28
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多