如何将参数从方法传递给hibernate查询

时间:2018-05-16 14:42:04

标签: hibernate spring-boot hql

我无法将方法参数传递给hibernate查询的命名参数

@Modifying
@Query("update Cinema cin set cin = #{cinema} where cin.id = #{cinema.id}")
    Cinema updateCinema(@Param("cinema") Cinema cinema);

收到以下错误,

 "Caused by: org.hibernate.QueryException: unexpected char: '#' "

我该如何解决?

1 个答案:

答案 0 :(得分:0)

在查询注释中,您可以使用PointEditor(例如:<parameter>)来引用参数。

看起来您只想更新特定实体。有没有理由不简单地使用:cinema

由于您使用的是Spring-boot,因此您可能也在使用Spring数据。在这种情况下,entityManager.merge(cinema)也应该有用。