为了账号安全,请及时绑定邮箱和手机立即绑定

JPA,如何选择数组包含值的位置?

JPA,如何选择数组包含值的位置?

郎朗坤 2022-11-02 17:28:15
我有一个类似 MyObject 的 Object(我使用 hibernate-array-contributor 依赖项来管理数组):@Entity@Table(name = "mytable")@NamedQueries({        @NamedQuery(name = "findAll",            query = "SELECT n FROM mytable n"),        @NamedQuery(name = "getForUsers",            query = "SELECT n FROM mytable n WHERE users @> :users")                })public class MyObject{   @Id   @GeneratedValue(strategy = GenerationType.IDENTITY)   private long id;   @Column(name="title")   private String title;    @Column(name="users", columnDefinition="bigint array")   private Long[] users ;   //constructor, getters and setters}当我想使用 namedquery getForUsers 时遇到一些问题:org.hibernate.HibernateException:命名查询中的错误:getForUsers 失败,因为:org.hibernate.QueryException:意外字符:'@' [SELECT n FROM MyObject n WHERE users @> :users]但是当我在 pgAdmin 中编写它时,它运行良好。我该怎么做?提前致谢。
查看完整描述

1 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

我的编辑不允许删除或更新(ElementCollection),因此在初始状态下,这有效:


@NamedNativeQueries({

    @NamedNativeQuery(name="getForUser", query = "SELECT * FROM mytable n WHERE n.users @> ?1 ", resultClass=MyObject.class)

}) 


查看完整回答
反对 回复 2022-11-02
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信