我正在使用 Spring JPA 和 PostgreSQL 数据库。我有一个实体如下:
@Entity
@TypeDef(name="json_binary", typeClass = com.vladmihalcea.hibernate.type.json.JsonBinaryType.class)
public class LiveTokens {
@Id
@GeneratedValue()
private Long id;
private String username;
@Type(type="json_binary")
@Column(columnDefinition = "jsonb")
private Token token
}
and Token
:
public class Token {
private Long expireTime;
private String accessToken;
}
为了使用 Hibernate 将对象保存到列,我使用休眠类型 https://github.com/vladmihalcea/hibernate-types项目。
现在我想得到全部LiveToken
已经过期了。我无法用 Spring JPA 做到这一点。如何使用 Spring data JPA 查询 posgresql jsonb 列?
SQL JSON 函数
如果您想调用处理 JSON 列的 SQL 函数,那么您只需要确保注册函数 https://vladmihalcea.com/hibernate-sql-function-jpql-criteria-api-query/在使用 Hibernate 之前。
JSON 运算符
对于 JSON 运算符,例如 PostgreSQL 运算符(例如,->>
),您唯一的选择就是使用本机 SQL 查询。 JPQL 或 HQL 不支持特定于数据库的 JSON 运算符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)