Hibernate 参数化HQL更新查询问题

Hibernate 参数化HQL更新查询问题,hibernate,hql,illegalargumentexception,Hibernate,Hql,Illegalargumentexception,我试图更新实体的属性,但我 java.lang.IllegalArgumentException: node to traverse cannot be null! 该方法的主体包含以下问题: sessionFactory.getCurrentSession() .createQuery("UPDATE Author SET expiredDate = :date where id = :id") .setParameter("date", ne

我试图更新实体的属性,但我

java.lang.IllegalArgumentException: node to traverse cannot be null!
该方法的主体包含以下问题:

sessionFactory.getCurrentSession()
            .createQuery("UPDATE Author SET expiredDate = :date where id = :id")
            .setParameter("date", new Date())
            .setParameter("id", id).executeUpdate();
作者实体类:

@Entity
@Table(name = "authors")
@SequenceGenerator(name = "AUTHORS_SEQ", sequenceName = "AUTHORS_SEQ")
public class Author implements Serializable {

    @Id
    @Column(name = "author_id")
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "AUTHORS_SEQ")
    private Long id;

    @Column(name = "author_name")
    private String name;

    @Column(name = "expired")
    private Date expiredDate;

    @OneToMany(fetch = FetchType.LAZY)
    @JoinTable(name = "NEWS_AUTHORS", joinColumns = {@JoinColumn(name = "AUTHOR_ID")}, inverseJoinColumns = {@JoinColumn(name = "NEWS_ID")})
    private Set<News> newsSet;
//... getters and setters ...
@实体
@表(name=“authors”)
@SequenceGenerator(name=“AUTHORS_SEQ”,sequenceName=“AUTHORS_SEQ”)
公共类Author实现了可序列化{
@身份证
@列(name=“author\u id”)
@GeneratedValue(策略=GenerationType.SEQUENCE,generator=“AUTHORS_SEQ”)
私人长id;
@列(name=“author\u name”)
私有字符串名称;
@列(name=“expired”)
私有日期到期日;
@OneToMany(fetch=FetchType.LAZY)
@JoinTable(name=“NEWS\u AUTHORS”,joinColumns={@JoinColumn(name=“AUTHOR\u ID”)},inverseJoinColumns={@JoinColumn(name=“NEWS\u ID”)})
专用新闻集;
//…能手和二传手。。。

我的查询出了什么问题?

你能给我们看一下
Author
类吗?这正是你创建和运行查询的方式吗?查询可能是你在这里发布的命名查询,只是为了简洁,还是类似的东西?它是DAO层方法的主体。而且所有DAO类都是事务性的。我从不使用命名查询选项。@Draganbozanovic仅用于测试,请尝试将注释
@Temporal(value=TemporalType.TIMESTAMP)
放在expiredDate列中。@Dherik它没有帮助)