Много ко многим Неверное имя объекта - PullRequest
0 голосов
/ 14 мая 2018

В моем коде создано отношение «многие ко многим» между Employee-Project, но когда я хочу использовать его, выдается следующее исключение:

com.microsoft.sqlserver.jdbc.SQLServerException: недопустимое имя объекта employee_project.

Я пытался, но мне не удалось найти причину этого исключения. ТАК, пожалуйста, помогите мне.

Ниже приведены POJO для Employee и Project, а также код, который выдает это исключение

Сотрудник 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);
}

Project 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. : Вот изображение моей текущей базы данных

1 Ответ

0 голосов
/ 14 мая 2018

Итак, я решил проблему сам.По-видимому, если я добавлю подчеркивание внутри @JoinTable(Employee_Project) и также изменим это в базе данных, оно работает.

Может кто-нибудь объяснить, почему я должен был это сделать?

...