微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql – 如何在Hibernate中使用数组字段制作条件

我正在使用Hibernate和Postgres并定义了一个字符(1)[]列类型.

所以我不知道如何使这个条件在数组中找到一个值.

喜欢这个查询

SELECT * FROM cpfbloqueado WHERE bloqueados @> ARRAY['V']::character[]

解决方法

我不熟悉Postgres及其类型,但您可以使用 custom basic type mapping定义自己的类型.这可以简化查询.

关于Postres数组类型和Hibernate,在SO上有很多线程,例如,this one.另一个可能有用的数组映射示例is here.最后,here is an example使用Criteria和用户类型.

代码示例可以是

List result = session.createCriteria(Cpfbloqueado.class)
   .setProjection(Projections.projectionList()
      .add(Projections.property("characterColumn.attribute"),PostgresChararrayType.class)
   )
   .setResultTransformer(Transformer.aliasToBean(Cpfbloqueado.class))
   .add(...) // add where restrictions here 
   .list()

此外,如果它对实现不重要,您可以在实体模型中定义最大长度,使用@Column(length = 1)注释您的字段.

或者,如果您需要存储长度为1的字符数组,则可以使用collection type.

我希望我能说得对,但是,如果更好地描述问题域,那将会很好.

原文地址:https://www.jb51.cc/mssql/78608.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐