Java JPA存储库Lob列

Java JPA存储库Lob列,java,spring,spring-data,spring-data-jpa,jpql,Java,Spring,Spring Data,Spring Data Jpa,Jpql,是否可以通过按lob列进行过滤来实现JPA存储库 我有以下代码: @Entity @Table(name = "SUBJECT_IDENTIFIER") public class SubjectIdentifier implements Serializable { @Id @Column(name = "SUBJECT_IDENTIFIER_ID") private long subjectIdentifierIid; @Lob

是否可以通过按lob列进行过滤来实现JPA存储库

我有以下代码:

@Entity
@Table(name = "SUBJECT_IDENTIFIER")      
public class SubjectIdentifier implements Serializable {

     @Id
     @Column(name = "SUBJECT_IDENTIFIER_ID")
     private long subjectIdentifierIid;

     @Lob
     @Column(name = "SOR_BP_GUID", columnDefinition="BLOB NOT NULL")
     private byte[] bpGuid;

     //getter/setter
}


public interface SubjectIdentifierRepository extends JpaRepository<SubjectIdentifier, Long> {

   @Query("select si from SubjectIdentifier  si where si.bpGuid= :bpGuid")
   SubjectRepository findByBpGuid(@Param("bpGuid") byte[] bpGuid);

}
但我无法从数据库中找到对象。
我必须通过其他方式实现此查询吗?

当然,前提是您的数据库支持它

我建议您按照如下所示编写查询,因为无需使用
@query
注释即可完全解决该需求

SubjectRepository findOneByBpGuid(@Param("bpGuid") byte[] bs);
我对
columnDefinition
规范有点好奇:如果没有它,db列是否设置为错误的类型?如果可能的话,我更喜欢这句话而不是使用
columnDefinition
。这将使配置数据库不可知

@Column(name = "SOR_BP_GUID", nullable = false)
另请参见:

您的列名(在DB中,以及在注释中定义的列名)是
SOR\u BP\u GUID
,但是您的SQL语句正在查找
si.bpGuid
-我认为它应该是
si.SOR\u BP\u GUID
@Column(name = "SOR_BP_GUID", nullable = false)