Java Spring boot JPA使用findById不返回现有结果
我使用Oracle数据库和一些JPA查询创建了一个非常小和简单的Spring Boot应用程序 这是不返回数据的代码段,数据实际上存在于数据库中Java Spring boot JPA使用findById不返回现有结果,java,hibernate,spring-boot,jpa,spring-data-jpa,Java,Hibernate,Spring Boot,Jpa,Spring Data Jpa,我使用Oracle数据库和一些JPA查询创建了一个非常小和简单的Spring Boot应用程序 这是不返回数据的代码段,数据实际上存在于数据库中 letterRecipientNonOas = letterRecipientNonOasRepository .findById(Long.valueOf(letterRecipientDTO.getNonOas().getId())) .
letterRecipientNonOas = letterRecipientNonOasRepository
.findById(Long.valueOf(letterRecipientDTO.getNonOas().getId()))
.orElseThrow(() -> new EntityNotFoundException(LetterRecipientNonOas.class,
Constant.MESSAGE_ENTITY_NOT_FOUND));
这里findById返回空的结果集
这是我的存储库
package com.care.document.repository;
import java.util.List;
import java.util.Optional;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository;
import com.care.document.model.LetterRecipientNonOas;
/**
* The Interface LetterRecipientNonOasRepository.
*/
@Repository
public interface LetterRecipientNonOasRepository extends PagingAndSortingRepository<LetterRecipientNonOas, Long> {
Optional<LetterRecipientNonOas> findByLetterId(Long id);
Optional<LetterRecipientNonOas> findByTitleIgnoreCase(String title);
List<LetterRecipientNonOas> findByTitleContainingIgnoreCase(String title);
List<LetterRecipientNonOas> findAllByTitleIgnoreCaseAndIdNot(String title, Long recipientId);
List<LetterRecipientNonOas> findAllByIdAndLetterId(long id, long letterId);
}
我试过,试过不同的方法,但没有用 有两种情况可以让人产生这种印象:
如果它没有返回任何东西,它就不在那里,或者你没有使用你认为你正在使用的数据库。我验证了所有这些数据,甚至我正在使用的数据库都在那里。我怀疑它是否正确,否则它将返回一些东西。结果不是撒谎。因此,您的应用程序或者正在查看另一个数据库,或者您看到的数据没有保存在数据库中(即未提交的事务)。尽管如此,结果并不是撒谎。
package com.care.document.model;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.PrePersist;
import javax.persistence.Table;
import org.springframework.lang.Nullable;
import com.care.admin.model.BaseEntity;
import com.care.admin.util.CommonUtil;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.experimental.FieldDefaults;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Entity
@Table(name = "letter_recipient_non_oas")
public class LetterRecipientNonOas extends BaseEntity implements Serializable {
@Id
Long id;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "letter_id")
Letter letter;
Integer recipientType; // Action/Info
//byte recipientSubType; // Internal/External/NonOAS
byte recipientCategory; //Internal/External
int orderNo;
String title;
@Nullable
String remarks;
String address;
@PrePersist
private void prePersist() {
this.id = CommonUtil.generateID(this.atRegion);
}
}