【发布时间】:2019-11-01 09:39:09
【问题描述】:
我正在尝试通过 Java Spring 进行简单的 SQL 调用。数据库有数据,但调用时返回空值列表。
有趣的是,当我选择特定行时,它会返回正确的值。 (见下文)
BasicAccountAuditRepo.java
@Repository
public interface BasicAccountAuditRepository extends CrudRepository<BasicAccountAudit, BasicAccountAuditPK> {
List<BasicAccountAudit> findAll();
//THIS RETURNS NULL
@Query("SELECT b FROM BasicAccountAudit as b WHERE id.accountRef = :accountRef ")
List<BasicAccountAudit> findByAccountRef(@Param("accountRef") String accountRef);
//This returns the correct values for dcConnName
@Query("SELECT id.dcConnName FROM BasicAccountAudit WHERE id.accountRef = :accountRef ")
List<BasicAccountAudit> findByAccountRef(@Param("accountRef") String accountRef);
}
我正在为模型类使用嵌入式 ID。 BasicAccountAudit.java
@XmlRootElement
@Entity
@Table(name = "tb_Account_History", schema="dbo")
public class BasicAccountAudit implements Serializable{
@EmbeddedId
private BasicAccountAuditPK id;
@Temporal(TemporalType.TIMESTAMP)
@Column(insertable = true, columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
private Date enteredDate;
@Temporal(TemporalType.TIMESTAMP)
@Column(insertable = true, columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
private Date lastUpdatedDate;
}
这里是主键类: BasicAccountAuditPK.java
package org.fusion.restful.basicaccount.model;
import java.io.Serializable;
public class BasicAccountAuditPK implements Serializable {
private String accountRef;
private String client;
private String dcEligible;
private String shortCode;
private String loadCps;
private String stpFlag;
private String accountType;
private String clearingFirm;
private String exchange;
private String dcConnName;
private String status;
private String enteredBy;
//getters and setters...
}
【问题讨论】:
-
设置 logging.level.org.hibernate.SQL=debug 并发布生成的 SQL 语句
-
嗨,西蒙!我在哪里设置?抱歉,我对此很陌生
-
在application.properties文件中
-
为什么您使用查询,而您可以使用 Data JPA 方法命名做完全相同的事情?喜欢
List<BasicAccountAudit> findAllByAccountRef(String accountRef);? -
@DmytroGrynets 我之前尝试过使用该方法,但 accountRef 是 id 类的一部分,并且上述查询返回错误,因为 accountRef 不是 BasicAccountAudit 的一部分(它是 BasicAccountAuditPK 的一部分)
标签: java rest spring-boot jpa jpql