【发布时间】:2018-10-24 08:23:55
【问题描述】:
我在代码中的 Employee-Project 之间创建了多对多关系,但是当我想使用它时会抛出此异常:
com.microsoft.sqlserver.jdbc.SQLServerException:对象名称“employee_project”无效。
我试过了,但我没有成功找到这个异常的根本原因。所以,请帮助我。
以下是 Employee 和 Project 的 POJO 以及引发此异常的代码
员工pojo:
@Entity
@Table(name = "Employee")
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "EMPLOYEE_ID_PK")
private int employeeIdPk;
@ManyToMany(fetch = FetchType.LAZY, cascade = {
CascadeType.PERSIST,
CascadeType.MERGE
},
mappedBy = "workers")
private Collection<Project> projects = new HashSet<Project>(0);
}
项目pojo:
@Entity
@Table(name = "Project")
public class Project {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "PROJECT_ID_PK")
private int projectIdPk;
@ManyToMany(fetch = FetchType.LAZY, cascade = {
CascadeType.PERSIST,
CascadeType.MERGE
})
@JoinTable(name = "EmployeeProject", joinColumns = {
@JoinColumn(name = "PROJECT_ID_PK") },
inverseJoinColumns = { @JoinColumn(name = "EMPLOYEE_ID_PK") })
Collection<Employee> workers = new HashSet<Employee>(0);
}
问题代码:
Project project = projectRepository.findByProjectIdPk(24);
Collection<Employee> employees = project.getWorkers();
我正在使用 Spring Data Jpa 和 SQL Server。 : Here is a picture of my current database
【问题讨论】:
-
@多对多关系我使用嵌入式表来定义它自己的存储库,我无法以这种方式做到这一点
-
@BasilBattikhi 但是我没有使用任何额外的列,为什么要使用嵌入式表?
-
这不是正确的方法。按照以下链接查看已完成多少个映射thoughts-on-java.org/…
标签: java hibernate jpa orm many-to-many