gpt4 book ai didi

java - CrudRepository 不删除行

转载 作者:行者123 更新时间:2023-12-02 05:39:04 25 4
gpt4 key购买 nike

我创建了一个像这样的计划类

计划:

@Entity(name = "Plan")
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class PlanEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int planId;

private String planName;

private BigDecimal pBenefitMax;

private LocalDate pStartDate;

private LocalDate pEndDate;

private int pCompanyId;

@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "dPlanId")
private List<DentalAgreementEntity> dentalAgreementEntities;

@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "pPlanId")
private List<PatientEntity> patientEntities;
}

患者实体如下所示:

@Entity(name = "Patient")
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class PatientEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int patientId;

private String firstName;

private String lastName;

private String patientEmail;

private String patientPhone;

private LocalDateTime dateOfBirth;

@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "tPatientId")
private List<TransactionEntity> transactionEntities;

@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "aPatientId")
private List<AppointmentEntity> appointmentEntities;

@ManyToOne
@JoinColumn(name = "pPlanId")
private PlanEntity planEntity;

}

协议(protocol)实体如下所示:

@Entity(name = "DentalAgreement")
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class DentalAgreementEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer agreementId;

private BigDecimal percentage;

private Integer dPlanId;

private String dAdaCode;
}

PlanRepository 看起来像这样:

@Repository
public interface PlanRepository extends CrudRepository<PlanEntity, Integer> {
}

而且我能够轻松成功地保存计划实体。但是,如果我尝试删除 PlanEntity,如下所示:

public void deleteCompanyPlan(PlanEntity planEntity){
planRepository.delete(planEntity);
}

虽然没有抛出错误,但当我检查数据库时,该行并未被删除。我尝试过使类可序列化,仅使用“deleteById()”方法和许多其他方法,但我无法通过 Spring 实现删除计划。我做错了什么?

最佳答案

通过从父实体中删除 FetchType.LAZY 和 CascadeType.All 已修复问题。

@Entity(name = "Company")
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper=false)
public class CompanyEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int companyId;

private String companyName;

private String companyNumber;

private String companyEmail;

private String companyAddress;

private String companyCity;

private String companyState;

private String companyZip;

@OneToMany
@JoinColumn(name = "pCompanyId")
private List<PatientEntity> patientEntities;

@OneToMany
@JoinColumn(name = "pCompanyId")
private List<PlanEntity> planEntities;

@Override
public String toString() {
return "CompanyEntity{" +
"companyId=" + companyId +
", companyName='" + companyName + '\'' +
", companyNumber='" + companyNumber + '\'' +
", companyEmail='" + companyEmail + '\'' +
", companyAddress='" + companyAddress + '\'' +
", companyCity='" + companyCity + '\'' +
", companyState='" + companyState + '\'' +
", companyZip='" + companyZip + '\'' +
'}';
}
}

关于java - CrudRepository 不删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56150031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com