2017-01-13 3 views
0

Ich habe eine Entität Benutzer:PropertyAccessException: Fehler beim Zugriff auf Feld

@Entity 
public class User implements Serializable { 

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
@Column(name = "id", unique = true, nullable = false) 
private Long id; 

    public Long getId() { 
    return id; 
} 
...} 

Und ich versuche, einen Benutzer aus einer Aufgabe mit der Datenbank zu entfernen:

@Modifying 
@Query("DELETE FROM Collaborator c WHERE c.user = :userId AND c.task = :taskId") 
void deleteUserFromTask(@Param("userId") Long userId, @Param("taskId") Long taskId); 

und das ist die Beziehung zwischen Benutzer und Mitarbeiter (die Tabelle, aus der ich lösche): In Benutzer

@JsonIgnore 
@OneToMany(mappedBy="user", fetch = FetchType.EAGER) 
private Set<Collaborator> collaborators = new HashSet<>(); 

In Collaborator

@ManyToOne(cascade = {CascadeType.MERGE, 
         CascadeType.DETACH, 
         CascadeType.REFRESH }, 
      fetch = FetchType.EAGER) 
@JoinColumn(name = "UserID", nullable = true) 
private User user; 

aber ich diesen Fehler:

Caused by: org.hibernate.property.access.spi.PropertyAccessException: Error accessing field [private java.lang.Long gestionprojet.java.entities.beans.User.id] by reflection for persistent property [gestionprojet.java.entities.beans.User#id] : 1 

Hibernate Version: 5.2.6.FINAL

+1

Entweder ändern c.user.id =: userId oder Pass in User und verwenden c.user =: user –

+0

Setzen Sie es als Antwort und ich werde es akzeptieren, Danke –

Antwort

0

Sie haben ein Mismatch In Ihren Parametern, dh Sie versuchen und spezifizieren ein Long als Parameter für ein Us er Typ:

Sie ändern es in einer von zwei Möglichkeiten:

@Query("DELETE FROM Collaborator c WHERE c.user.id = :userId AND c.task.id = :taskId") 
void deleteUserFromTask(@Param("userId") Long userId, @Param("taskId") Long taskId); 

oder

@Query("DELETE FROM Collaborator c WHERE c.user = :user AND c.task = :task") 
void deleteUserFromTask(@Param("user") User user, @Param("task") Task task); 
Verwandte Themen