代码之家  ›  专栏  ›  技术社区  ›  n002213f

如何在JPA中使用枚举作为namedquery参数

  •  5
  • n002213f  · 技术社区  · 16 年前

    我有一个 Entity 用一个 enum 属性和一对 NamedQueries . 其中之一 命名查询 有 枚举 属性作为参数,即

    SELECT m FROM Message m WHERE m.status = :status

    当我尝试查询时,我得到以下错误:

    Caused by: java.lang.IllegalArgumentException: You have attempted to set a value of type class my.package.Status for parameter status with expected type of class my.package.Status from query string SELECT m FROM Message m WHERE m.status = :status.

    我正在使用TopLink

    这是怎么回事?我怎样才能让JPA快乐?

    2 回复  |  直到 16 年前
        1
  •  2
  •   Bozhidar Batsov    16 年前

    枚举对象可以像任何其他对象一样用作查询参数。但是,您的查询可能是:

    SELECT m FROM Message m WHERE m.status = :status
    

    还-是否在实体定义中添加了枚举的@?

        2
  •  0
  •   Aziz Shaikh    14 年前

    这是一个错误: Bug Comparing Enum with Bindingparameter . 我绕着参数乱转,然后执行查询。

    推荐文章