首页 > 解决方案 > Spring boot CrudRepository 保存坏数据

问题描述

我在 DB 中保存数据时遇到问题。我是 Spring Boot 的新手。当我运行我的程序时,写入数据的结果是:packagename@randomcode 示例:com.abc.patient.Patient@6e3e681e

这是我的实体类 - Patient.java

@Entity
public class Patient {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    private String name;

    // getter, setter, constructor, etc
}

这是我的 CrudRepo PatientRepository.java

public interface PatientRepository extends CrudRepository<Patient,Integer> {
}

这是我的服务类 PatientService.java

@Service
public class PatientService {

    @Autowired
    private PatientRepository patientRepository;

    public void savePatient (String name) {
        Patient patient = new Patient(name);
        patientRepository.save(patient);
    }

    public Optional<Patient> showPatient(int id) {
        return patientRepository.findById(id);
    }

    public List<Patient> showAllPatients() {
        List<Patient> patients = new ArrayList<>();
        patientRepository.findAll().forEach(patients::add);
        return patients;
    }
}

我认为savePatient这一行方法中的问题是:

Patient patients = new Patient(name);

我检查了"name"参数,它是 100% 正确的字符串。我正在使用 Derby DB。

标签: javaspring-data-jpaderby

解决方案


尝试:

public void savePatient(Patient patient) {
    patientRepository.save(patient);
}

推荐阅读