是否可以通过 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);
}
//测试
SubjectRepository byBpGuid = subjectIdentifierRepository.findByBpGuid("D9E70D24567E4DAE8FD3ED5898579092".getBytes());
但我无法从数据库中找到对象。 我是否必须通过其他方式实现此查询?
最佳答案
当然可以,前提是您的数据库支持它。
我建议您按如下所示编写您的查询,因为无需使用 @Query
注释即可完全解决该要求。
SubjectRepository findOneByBpGuid(@Param("bpGuid") byte[] bs);
我对 columnDefinition
规范有点好奇:如果没有它,db 列是否设置为错误的类型?如果可能的话,我更喜欢使用此语句而不是使用 columnDefinition
。这将使配置数据库不可知。
@Column(name = "SOR_BP_GUID", nullable = false)
关于java - JPA 存储库 Lob 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45739517/