Java JpaRepository在选择时丢失列值
我有一个JpaRepository,它有一个通过两个实体字段进行搜索的方法。除了一种情况外,它运行良好。由于某些原因,在获取实体后-特定行缺少一列值 请帮我找个理由 我的JPA存储代码:Java JpaRepository在选择时丢失列值,java,jpa,spring-data-jpa,spring-data,Java,Jpa,Spring Data Jpa,Spring Data,我有一个JpaRepository,它有一个通过两个实体字段进行搜索的方法。除了一种情况外,它运行良好。由于某些原因,在获取实体后-特定行缺少一列值 请帮我找个理由 我的JPA存储代码: public interface FinParameterRepository extends JpaRepository<FinParameterOB, Long> { FinParameterOB findByFinancingIdAndIdx(Long financingId, In
public interface FinParameterRepository extends JpaRepository<FinParameterOB, Long> {
FinParameterOB findByFinancingIdAndIdx(Long financingId, Integer idx);
}
@Entity
@Getter
@Setter
@Table(name = "FINPARAMETER")
@SequenceGenerator(allocationSize = 1, name = "SEKWENCJA", sequenceName = "GEN_FINPARAMETER_ID")
public class FinParameterOB {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEKWENCJA")
private Long id;
@Column(name = "IDX")
private Integer idx = 0;
@Column(name = "CAPTION", length = 50)
private String caption;
@Column(name = "VALUEPAR")
private BigDecimal valuepar;
@Column(name = "FINANCINGID", insertable = false, updatable = false)
private Long financingId;
数据库中的记录:
public interface FinParameterRepository extends JpaRepository<FinParameterOB, Long> {
FinParameterOB findByFinancingIdAndIdx(Long financingId, Integer idx);
}
@Entity
@Getter
@Setter
@Table(name = "FINPARAMETER")
@SequenceGenerator(allocationSize = 1, name = "SEKWENCJA", sequenceName = "GEN_FINPARAMETER_ID")
public class FinParameterOB {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEKWENCJA")
private Long id;
@Column(name = "IDX")
private Integer idx = 0;
@Column(name = "CAPTION", length = 50)
private String caption;
@Column(name = "VALUEPAR")
private BigDecimal valuepar;
@Column(name = "FINANCINGID", insertable = false, updatable = false)
private Long financingId;
获得的结果:
public interface FinParameterRepository extends JpaRepository<FinParameterOB, Long> {
FinParameterOB findByFinancingIdAndIdx(Long financingId, Integer idx);
}
@Entity
@Getter
@Setter
@Table(name = "FINPARAMETER")
@SequenceGenerator(allocationSize = 1, name = "SEKWENCJA", sequenceName = "GEN_FINPARAMETER_ID")
public class FinParameterOB {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEKWENCJA")
private Long id;
@Column(name = "IDX")
private Integer idx = 0;
@Column(name = "CAPTION", length = 50)
private String caption;
@Column(name = "VALUEPAR")
private BigDecimal valuepar;
@Column(name = "FINANCINGID", insertable = false, updatable = false)
private Long financingId;
使用
spring.jpa.show sql=true启用sql日志记录并运行日志记录查询。它将帮助您完成调试。您可能会发现没有对idx=1执行select,因为该实体已使用valuepar=0
@jenschauder加载和修改,谢谢。真正的原因和你们说的一模一样——实体已经被修改和缓存了。