mysql - 属性访问异常 : Error accessing field

标签 mysql spring hibernate spring-mvc spring-data-jpa

我有一个实体 用户 :

@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;
}
...}

我正在尝试从数据库的任务中删除用户:
@Modifying
@Query("DELETE FROM Collaborator c WHERE c.user = :userId AND c.task = :taskId")
void deleteUserFromTask(@Param("userId") Long userId, @Param("taskId") Long taskId);

这是用户和协作者(我要从中删除的表)之间的关系:
用户
@JsonIgnore
@OneToMany(mappedBy="user", fetch = FetchType.EAGER)
private Set<Collaborator> collaborators = new HashSet<>(); 

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

但我收到此错误:
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

最佳答案

您的参数不匹配,即您尝试指定 Long 作为用户类型的参数:

您可以通过以下两种方式之一更改它:

@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);

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

关于mysql - 属性访问异常 : Error accessing field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41642939/

相关文章:

php - 在mysql中选择查询时如何显示正确的时间戳?

spring - @Transactional 带有 1 个保存语句

java spring资源文件夹: FileNotFoundException

java - 如何在 spring mvc 中处理多个动态表单

java - JPA 实体中的预加载/加载后更新

java - 如何使用 Hibernate 有选择地更新 Spring bean 的属性?

java - 检查 Hibernate 中的分离实体

mysql - AngularJS + Ionic : Checking if new Entry in Database, 如果是:推送通知

mysql - Laravel Prolem 与 Model::with 附加列

mysql - 环回: saving model relations to database