Работая в проекте Spring Boot
, я использовал JPA для сопоставления сущностей в базе данных, но, к сожалению, я столкнулся с этой ошибкой:
org.springframework.beans.factory.BeanCreationException: ошибка
создание компонента с именем entityManagerFactory, определенным в пути к классам
ресурс
[Орг / springframework / загрузки / Автоконфигурирование / ОРМ / JPA / HibernateJpaConfiguration.class]:
Ошибка вызова метода init; вложенное исключение
org.hibernate.AnnotationException: @OneToOne или @ManyToOne в
com.userFront.domain.SavingsTransaction.savingsAccount ссылается на
неизвестная сущность: com.userFront.domain.SavingsAccount
Из того, что я понимаю, проблема заключается в отношениях между этими двумя классами. Согласно моей концепции, я думаю, что все аннотации верны, а логика верна.
Это класс SavingsAccount:
package com.userFront.domain;
import java.math.BigDecimal;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import net.minidev.json.annotate.JsonIgnore;
public class SavingsAccount {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id ;
private int accountNumber;
private BigDecimal accountBalance;
@OneToMany(mappedBy="savingsAccount",cascade=CascadeType.ALL,fetch=FetchType.LAZY)
@JsonIgnore
private List<SavingsTransaction > SavingsTransactionList;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public int getAccountNumber() {
return accountNumber;
}
public void setAccountNumber(int accountNumber) {
this.accountNumber = accountNumber;
}
public BigDecimal getAccountBalance() {
return accountBalance;
}
public void setAccountBalance(BigDecimal accountBalance) {
this.accountBalance = accountBalance;
}
public List<SavingsTransaction> getSavingsTransactionList() {
return SavingsTransactionList;
}
public void setSavingsTransactionList(List<SavingsTransaction> savingsTransactionList) {
SavingsTransactionList = savingsTransactionList;
}
}
А это класс SavingsTransaction:
package com.userFront.domain;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
@Entity
public class SavingsTransaction {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id ;
private Date date ;
private String description ;
private String type ;
private String status ;
private double amount;
private BigDecimal availableBalance ;
@ManyToOne
@JoinColumn(name="savings_account_id")
private SavingsAccount savingsAccount;
public SavingsTransaction() {}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public double getAmount() {
return amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
public BigDecimal getAvailableBalance() {
return availableBalance;
}
public void setAvailableBalance(BigDecimal availableBalance) {
this.availableBalance = availableBalance;
}
public SavingsAccount getSavingsAccount() {
return savingsAccount;
}
public void setSavingsAccount(SavingsAccount savingsAccount) {
this.savingsAccount = savingsAccount;
}
public SavingsTransaction(Date date, String description, String type, String status, double amount,
BigDecimal availableBalance, SavingsAccount savingsAccount) {
super();
this.date = date;
this.description = description;
this.type = type;
this.status = status;
this.amount = amount;
this.availableBalance = availableBalance;
this.savingsAccount = savingsAccount;
}
}