首页 > 解决方案 > 如何将 java.sql.binary 类型映射到休眠类型?

问题描述

我有一个如下所示的 prepraredStatement,我想重构这段代码并使用 Spring Data JPA。问题是我不知道如何将 java.sql.Types.BINARY 映射到休眠类型。

String query= "SELECT count(*) FROM USERS WHERE ACCOUNT_ID=?";
query.setObject(1, accountID.toString().replaceAll("-", ""), Types.BINARY);

我尝试了字节数组,但是当我查询时它返回空结果集。

@Column(name = "ACCOUNT_ID", nullable = false)
private byte[] accountId;

标签: javahibernatespring-data-jpa

解决方案


我不确定二进制类型是否适合 ID,可能您正在使用 UUID 并且会从中受益更多?

但是,如果您确定这是您真正想要的,那么您可以使用org.hibernate.annotations.Type注释,如下所示:

@Column(name = "ACCOUNT_ID", nullable = false)
@Type(type = "org.hibernate.type.BinaryType")
private byte[] accountId;

推荐阅读