为什么Spring Boot findById返回null而findByIdAndStatus返回记录呢?

时间:2020-03-10 12:21:30

标签: java mysql hibernate spring-boot spring-data-jpa

Spring boot 2.2.2〜2.2.4(到目前为止我已经测试过)

我有一个Abstract类

@MappedSuperclass
@Data
@EntityListeners(AuditingEntityListener.class)
@FilterDef(name = "tenantFilter", parameters = {@ParamDef(name = "tenantId", type = "int")})
@Filter(name = "tenantFilter", condition = "tenantId = :tenantId")
public abstract class BaseEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    ....
}

扩展抽象类的人员类

@EqualsAndHashCode(callSuper = true)
@Entity
@Table(name = "personnel")
@AllArgsConstructor
@NoArgsConstructor
@Data
@EntityListeners(AuditingEntityListener.class)
public class Personnel extends BaseEntity {

    @NotNull
    @OneToOne
    @JoinColumn(name = "titleID")
    private Title title;

    // other fields and relationships of type ManyToOne, OneToMany
}

我的Jpa存储库类

public interface PersonnelRepository extends JpaRepository<Personnel, Integer> {
    Optional<PersonnelData> findByFileNo(String fileNo);
    Optional<PersonnelData> findByIdAndDeletedOnIsNull(Integer id);
}

在我的数据库中,我有个人记录,其中某些字段为null以及关系。

在我的控制器中,当我执行 findById(1) 时,它返回null,但是当我执行 findByIdAndDeletedOnIsNull(1) 时,它返回记录。

我曾尝试@NotFound(action = NotFoundAction.IGNORE)处理无效的关系,但没有成功。

0 个答案:

没有答案