Mysql Gradle/Hibernate/Maven注释外键创建

Mysql Gradle/Hibernate/Maven注释外键创建,mysql,hibernate,gradle,Mysql,Hibernate,Gradle,我目前正在从事一个使用Maven/Hibernate的Gradle项目。该程序插入MySQL数据库。我通过Java类生成表。当我第一次运行它创建表时 我的问题是,我目前收到此错误“(错误号:150“外键约束格式不正确”)”。我确信这与我的员工和门票有关 职员类别: import java.io.Serializable; import java.util.List; import javax.persistence.Entity; import javax.persistence.FetchT

我目前正在从事一个使用Maven/Hibernate的Gradle项目。该程序插入MySQL数据库。我通过Java类生成表。当我第一次运行它创建表时

我的问题是,我目前收到此错误“(错误号:150“外键约束格式不正确”)”。我确信这与我的员工和门票有关

职员类别:

import java.io.Serializable;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name = "Staff")
public class Staff implements Serializable{

/**
 * 
 */
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int staffId;
private String badgeCode;
private String firstName;
private String lastName;
private String email;
private String phone;
private String skillLevel;
private String status;

@OneToMany(mappedBy = "ticketId", fetch = FetchType.EAGER)
private List<Ticket> tickets;
@OneToMany(mappedBy="helpStaff", fetch=FetchType.EAGER)
private List<Ticket> tickets;
所以一张票上有一个职员,在我看来这意味着很多人。而一个员工有很多票,这是一个公司。我最初能够让findAll()hibernate查询工作,但它返回的是票证字段的对象ID,而不是关于票证的任何信息


我的问题是:外键问题的原因是什么。为什么没有在Staff表中为列表创建tickets字段,是什么导致返回对象id而不是任何实际数据

通过另一个来源给我的答案。Reddit上的用户g051051帮助了我

在职员班:

import java.io.Serializable;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name = "Staff")
public class Staff implements Serializable{

/**
 * 
 */
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int staffId;
private String badgeCode;
private String firstName;
private String lastName;
private String email;
private String phone;
private String skillLevel;
private String status;

@OneToMany(mappedBy = "ticketId", fetch = FetchType.EAGER)
private List<Ticket> tickets;
@OneToMany(mappedBy="helpStaff", fetch=FetchType.EAGER)
private List<Ticket> tickets;
因此,票证列表将由票证类的helpStaff属性确定。Ticket类将创建一个名为staffId的关联列,该列将使用Staff实体的主键