Java 原因:org.hibernate.AnnotationException:使用@OneToMany或@ManyToMany瞄准未映射的类:
我正在使用SpringBoot和mysql开发一个应用程序。 使用workbench.ER图在mysql中创建了两个表: 下面是我在eclipse中使用JPA工具生成的实体类 交易 使用者Java 原因:org.hibernate.AnnotationException:使用@OneToMany或@ManyToMany瞄准未映射的类:,java,hibernate,spring-boot,spring-data-jpa,Java,Hibernate,Spring Boot,Spring Data Jpa,我正在使用SpringBoot和mysql开发一个应用程序。 使用workbench.ER图在mysql中创建了两个表: 下面是我在eclipse中使用JPA工具生成的实体类 交易 使用者 当我运行这个应用程序时,我正在使用@OneToMany或@ManyToMany,目标是一个未映射的类异常。我不确定我会错在哪里。尝试了相关帖子,但没有成功。您的导入错误。您的@实体名为Transaction,但您从另一个包导入了javax.Transaction.Transaction类您的导入是错误的。您的
当我运行这个应用程序时,我正在使用@OneToMany或@ManyToMany,目标是一个未映射的类异常。我不确定我会错在哪里。尝试了相关帖子,但没有成功。您的导入错误。您的@实体名为Transaction,但您从另一个包导入了javax.Transaction.Transaction类您的导入是错误的。您的@Entity命名为Transaction,但您从另一个包中导入了javax.Transaction.Transaction类可能会导致映射没有问题。我使用mariadb在spring boot的最新版本中对其进行了测试,并设置了属性:spring.jpa.hibernate.ddl auto=update。它创建了数据库中的所有表,应用程序启动良好,没有任何错误。可能的情况是,映射没有任何错误。我使用mariadb在spring boot的最新版本中对其进行了测试,并设置了属性:spring.jpa.hibernate.ddl auto=update。它创建了数据库中的所有表,应用程序启动良好,没有任何错误。
import java.io.Serializable;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;
/**
* The persistent class for the transactions database table.
*
*/
@Entity
@Table(name = "transactions")
@NamedQuery(name = "Transaction.findAll", query = "SELECT t FROM Transaction t")
public class Transaction implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name = "TRANSACTIONS_TRANID_GENERATOR")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "TRANSACTIONS_TRANID_GENERATOR")
@Column(name = "tran_id")
private int tranId;
@Column(name = "created_by")
private String createdBy;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created_on")
private Date createdOn;
@Column(name = "total_balance")
private BigDecimal totalBalance;
@Column(name = "tran_amount")
private BigDecimal tranAmount;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "tran_date")
private Date tranDate;
@Column(name = "tran_type")
private String tranType;
@Column(name = "updated_by")
private String updatedBy;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "updated_on")
private Date updatedOn;
// bi-directional many-to-one association to User
/*
* @ManyToOne
*
* @JoinColumn(name = "user_id") private User user;
*/
@ManyToOne
@JoinColumn(name = "fk_userId", nullable = false)
private User user;
}
import java.io.Serializable;
import javax.persistence.*;
import javax.transaction.Transaction;
import java.util.Date;
import java.util.List;
/**
* The persistent class for the user database table.
*
*/
@Entity
@NamedQuery(name = "User.findAll", query = "SELECT u FROM User u")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name = "USER_USERID_GENERATOR")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "USER_USERID_GENERATOR")
@Column(name = "user_id")
private int userId;
@Column(name = "created_by")
private String createdBy;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created_on")
private Date createdOn;
@Column(name = "updated_by")
private String updatedBy;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "updated_on")
private Date updatedOn;
@Column(name = "user_first_name")
private String userFirstName;
@Column(name = "user_last_name")
private String userLastName;
@Column(name = "user_login_id")
private String userLoginId;
@Column(name = "user_password")
private String userPassword;
@Column(name = "user_phone")
private String userPhone;
// bi-directional many-to-one association to Transaction
@OneToMany(fetch = FetchType.EAGER, mappedBy = "user")
private List<Transaction> transactions;