首页 > 解决方案 > 在 JPA 中找不到实体实体类实例变量的属性

问题描述

我创建了一个患者实体类并将患者 ID 实例变量声明为主键。我在需要的地方使用每个 patientId ,但在我使用的地方没有 patientid 。当我运行我的应用程序时,我在运行时遇到此类错误。我正确检查了我的应用程序但我无法找到我的错误

Caused by: org.springframework.data.mapping.PropertyReferenceException: No property patientid found for type Patient! Did you mean 'patientId'?
    at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:90) ~[spring-data-commons-2.5.5.jar:2.5.5]
    at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:437) ~[spring-data-commons-2.5.5.jar:2.5.5]
    at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:413) ~[spring-data-commons-2.5.5.jar:2.5.5]
    at org.springframework.data.mapping.PropertyPath.lambda$from$0(PropertyPath.java:366) ~[spring-data-commons-2.5.5.jar:2.5.5]
    at java.base/java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:330) ~[na:na]
    at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:348) ~[spring-data-commons-2.5.5.jar:2.5.5]
    at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:331) ~[spring-data-commons-2.5.5.jar:2.5.5]
    at org.springframework.data.repository.query.parser.OrderBySource.lambda$createOrder$2(OrderBySource.java:112) ~[spring-data-commons-2.5.5.jar:2.5.5]
    at java.base/java.util.Optional.map(Optional.java:260) ~[na:na]
    at org.springframework.data.repository.query.parser.OrderBySource.createOrder(OrderBySource.java:110) ~[spring-data-commons-2.5.5.jar:2.5.5]
    at org.springframework.data.repository.query.parser.OrderBySource.<init>(OrderBySource.java:94) ~[spring-data-commons-2.5.5.jar:2.5.5]
    at org.springframework.data.repository.query.parser.PartTree$Predicate.<init>(PartTree.java:386) ~[spring-data-commons-2.5.5.jar:2.5.5]
    at org.springframework.data.repository.query.parser.PartTree.<init>(PartTree.java:95) ~[spring-data-commons-2.5.5.jar:2.5.5]
    at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:89) ~[spring-data-jpa-2.5.5.jar:2.5.5]
    ... 70 common frames omitted

病人.kt

package com.nillmani.hospitalmanagement.entity

import com.nillmani.hospitalmanagement.entity.enum.City
import java.time.LocalDate
import javax.persistence.*


@Entity
data class Patient(
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "AA_PATIENT_SEQ")
    @SequenceGenerator(sequenceName = "AA_PATIENT_SEQ" , allocationSize = 1,name = "AA_PATIENT_SEQ")
    var patientId:Long=-1,
    val name :String="",
    val lastName: String="",
    val phoneNumber :String="",
    val dateOfBirth : LocalDate= LocalDate.now(),
    val gender : String="",
    @Enumerated(EnumType.ORDINAL)
    val city: City,
    @Column(unique = true)
    val email:String="",
    var status:Int=0,
    @OneToMany(cascade = [CascadeType.ALL], fetch = FetchType.LAZY,mappedBy ="patient" )
    val disease: MutableList<Disease> = ArrayList(),
    @OneToMany(cascade = [CascadeType.ALL], fetch = FetchType.LAZY,mappedBy = "patient")
    val admission : List<Admissions> = ArrayList()
)

PatientJpaRepository.kt

package com.nillmani.hospitalmanagement.repository

import com.nillmani.hospitalmanagement.entity.Patient
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.data.jpa.repository.Query
import java.util.*


interface  PatientRepository :JpaRepository<Patient,Long> {
  
    @Query("select p from Patient p where p.status = 1 order by p.patientId ASC")
    fun findAllByStatusEquelsOne(): List<Patient?>?
}

病人服务.kt

 /**Update the patient disease details*/
    @Throws(Exception::class)
    fun updatePatientDisease(patientId: Long,patient: Patient):Boolean{
        val seekPerson : Optional<Patient> = patientRepository.findById(patientId)
        if (seekPerson.isPresent){
            patient.patientId = patientId
            patientRepository.save(patient)
            return true
        }else{
            logger.error("patient does not with this id $patientId")
            throw PatientNotFoundException()
        }
    }

病人控制者.kt

@DeleteMapping("/{patientId}")
    @Throws(Exception::class)
    fun deletePatient(@PathVariable(name = "patientId", required = true) patientId: Long): ResponseEntity<Boolean?>? {
        return ResponseEntity.ok(patientService.delete(patientId))
    }

标签: mysqlspring-bootkotlinjpa

解决方案


推荐阅读