我可以帮助您进行翻译。以下是翻译内容:
问题在于仓库返回了不在数据库中的数据的
例如,我将'asdf'作为
我遇到了以下问题:一个CrudRepository
返回了一个错误的结果,与数据库中的数据不匹配。
有一个实体类:
@Entity
@Table(name = "ATTRIBUTE")
public class Attribute implements Serializable {
private static final long serialVersionUID = 7360594743377794716L;
*******
@Id
@Basic(optional = false)
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private Long id;
*******
@Column(name = "R_ORGANIZATION_ID")
private Long refOrganizationId;
@Column(name = "TEXT_CODE")
private String textCode;
*******
/**
getters, settrs, hashCode, etc
**/
}
我有一个适当的 CrudRepository
public interface AttributeRepository
extends CrudRepository<Attribute, Long> {
*****
boolean existsByTextCodeAndRefOrganizationId(String textCode, Long organizationId);
*****
}
问题在于仓库返回了不在数据库中的数据的
true
。例如,我将'asdf'作为
textCode
传递,将0作为organizationId
。 尽管数据库中没有这样的textCode
,但我仍然会得到true
。以下是查询的自动生成代码: select
TOP(?) attribute0_.id as col_0_0_
from
attribute attribute0_
where
attribute0_.text_code=?
and attribute0_.r_organization_id=?
12:00:24.805 [http-nio-8080-exec-6] TRACE o.h.t.d.s.BasicBinder - binding parameter [2] as [VARCHAR] - [asdf]
12:00:24.805 [http-nio-8080-exec-6] TRACE o.h.t.d.s.BasicBinder - binding parameter [3] as [BIGINT] - [0]
但是如果我在任何SQL管理器中运行查询,会得到0行。可能是什么原因呢?
相关信息:MS SQL Server 2012, Java 1.8, spring-boot.version 1.5.4.RELEASE