Reputation: 1337
Hi guys im facing an error when i try to delete entity
error :
ERROR [io.undertow.request] (default task-2) UT005023: Exception handling request to /updateUseranswers/11: org.lightadmin.core.view.exceptions.BadRequestException: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: Parameter value [4] did not match expected type [ .entities.useranswers.UserAnswer (n/a)]
service :
for (UserAnswerField prevUserAnswerField : userAnswerFieldRepo.getUserAnswerFields(userAnswer.getAnswerId())) {
userAnswerFieldRepo.deleteUserAnswerField(prevUserAnswerField.getfieldId().intValue());
}
repo :
public void deleteUserAnswerField(Integer answerId) {
Query delQuery = getEntityManagerFactory().createQuery("delete from UserAnswerField sff where sff.userAnswerId=:answerId");
delQuery.setParameter("answerId", answerId);
delQuery.executeUpdate();
}
UserAnswer entity :
@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 entity :
@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;
Upvotes: 1
Views: 77
Reputation: 23552
Try with where sff.userAnswerId.answerId = :answerId
.
userAnswerId
in UserAnswerField
is of type UserAnswer
; just navigate to its id.
Upvotes: 1