sisimh
sisimh

Reputation: 1337

delete entity error in type

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

Answers (1)

Dragan Bozanovic
Dragan Bozanovic

Reputation: 23552

Try with where sff.userAnswerId.answerId = :answerId.

userAnswerId in UserAnswerField is of type UserAnswer; just navigate to its id.

Upvotes: 1

Related Questions