를 만들 때 나는 그들의 생성자/게터/세터와 그 지속 엔티티를 가지고 :JPA 매핑 예외 자식 요소
@Entity
public class Budget {
@Id
@GeneratedValue
private Long budgetId;
private double totalAmount;
private BudgetStatus status;
private Instant created;
@OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name = "budgetLineId")
private List<BudgetLine> budgetLines = new ArrayList<>();
// constructors/getters/setters
}
나는이 엔티티와 많은 관계를 단방향 하나를 수행 할 :
@Entity
@Immutable
public class BudgetLine {
@Id
@GeneratedValue
private Long budgetLineId;
private String description;
private int tooth;
// constructors/getters/setters
}
는 내가 제대로 실체를 주석 한 생각하지만, 나는이 예외 받고 있어요 :
이추가 또는 카이를 업데이트 할 수 없습니다를 LD 행 : 외래 키 제약 조건이 실패 이와
('치과 의사 - 응용 프로그램을' 'budgetline'CONSTRAINT 'FKn3er98a66as3vxuj1kij2q040' FOREIGN KEY ('budgetLineId') 참조 '예산'('budgetId').) 코드 :
private List<Budget> createBudgets(Patient patient, BudgetStatus budgetStatus) {
List<Budget> budgets = new ArrayList<Budget>();
Treatment treatment = new Treatment("Implant");
treatmentRepository.save(treatment);
for (int i = 0; i < 5; i++) {
List<BudgetLine> budgetLines = new ArrayList<>();
BudgetLine budgetLine = budgetLineRepository.save(new BudgetLine("tooth", 120));
budgetLines.add(budgetLine);
Budget budget = budgetRepository
.save(new Budget(10, 10, 300, "Comments", budgetStatus, patient, treatment, budgetLines));
budgets.add(budget);
}
patient.setBudgets(budgets);
patientRepository.save(patient);
return budgets;
}
내가 BudgetLine
인스턴스를 지속있을 때 나는이 예외를 받고 있어요 왜 단방향 관계의로 BudgetLine
테이블 Budget
어떤 외부 키 제한을하지 말았어야 때문에 내가 이해가 안 돼요. 무슨 일이 벌어지고 있는지에 대한 어떤 생각? 감사.
안녕하세요, 귀하의 답변에 감사드립니다. 당신 말이 맞아요, 다른 방법으로'@ JoinColumn'을 이해 했습니다만, BudgetLine에'private Long budgetId'을 추가하려고 시도했는데 작동하지 않습니다 ... –
당신은 그렇게 할 필요가 없습니다. 당신이 필요로하는 Java 코드에서만 Thge가 변경됩니다. SQL을 사용하여 테이블을 생성하고 Hibernate가 그것을 생성하지 못하도록한다면, BudgetLine 테이블에 budgetId 컬럼을 추가하고, BudgetLine.budgetd와 Budget.budgetId 사이에 외래 키 제약 조건을 생성해야한다. –
예, 죄송합니다. Java 클래스에서 Hibernate를 사용하여 Java 코드에서 테이블을 자동 생성하기 때문에이 속성을 만들었습니다. 'referencedColumnName = "budgetId"'를 주석에 추가했는데 완벽하게 작동하지 않고 작동하지 않는 것 같습니다 ... –