是否可以通过lob-column过滤来实现JPA-repository?
我有以下代码:
@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());
但我无法从数据库中找到对象。 我是否必须通过其他方式实现此查询?
答案 0 :(得分:1)
当然,前提是您的数据库支持它。
我建议您编写如下所示的查询,因为可以在不使用@Query
注释的情况下完全解决要求。
SubjectRepository findOneByBpGuid(@Param("bpGuid") byte[] bs);
我对columnDefinition
规范有点好奇:db列是否设置为错误类型?如果可能的话,我更倾向于使用columnDefinition
这个陈述。这将使配置数据库不可知。
@Column(name = "SOR_BP_GUID", nullable = false)