Spring: Ошибка создания компонента с именем entityManagerFactory, определенным в ресурсе пути к классу - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь установить связь между двумя разными таблицами в моей базе данных, используя Spring jpa.Тем не менее, каждый раз, когда я пытаюсь сделать @OnetoMany или @ManytoOne, я получаю ошибку, упомянутую в названии.

Студент:

    package EIC.com.example.Backend.Entity;
    import org.hibernate.annotations.Cascade;
    import javax.persistence.*;

    @Entity
    @Table(name = "etudiant")

    public class Student {
        @Id
        @Column(name="Apogee")
        private int id;
        @Column(name="Prenom")
        private String first_name;
        @Column(name="Nom")
        private String last_name;
        @Column(name="Classement")
        private int rank;
        @Column(name="Filiere")
        private String speciality;
        @ManyToOne
        @Column(name = "Offre")
        private Offer school; 
        /* GETTERS SETTERS CONSTRUCTORS */
    }

Предложение:

    package EIC.com.example.Backend.Entity;
    import javax.persistence.*;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    @Entity
    public class Offer {
        @Id
        @Column(name = "ID_OFFRE")
        private int id;
        @Column(name = "Type")
        private int type; // 0 for DD 1 for MOBILITY
        @Column(name = "Etablissement")
        private String school;
        @Column(name = "Filiere_Concerne")
        private String target;
        @Column(name = "Nb_place")
        private int seats;
        @Column(name = "Delai")
        private Date limit;
        @OneToMany
        @JoinColumn(name = "Offre")
        private List<Student> students=new ArrayList<>();
        /* GETTERS SETTERS CONSTRUCTORS */
    }

Зависимости:

http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.springframework.boot spring-boot-starter-parent 2.1.2.RELEASE EIC.com.example Backend 0.0.1-SNAPSHOT Проект EIC Backend с Spring Boot и Angular

<properties>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-cache</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-rest-hal-browser</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.session</groupId>
        <artifactId>spring-session-core</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.39</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

U не может иметь одновременно @Column и @ManyToOne

Вместо @Column используйте @JoinColumn.Ваш класс ученика должен выглядеть так:

@Entity
@Table(name = "etudiant")

    public class Student {
        @Id
        @Column(name="Apogee")
        private int id;
        @Column(name="Prenom")
        private String first_name;
        @Column(name="Nom")
        private String last_name;
        @Column(name="Classement")
        private int rank;
        @Column(name="Filiere")
        private String speciality;
        @ManyToOne
        @JoinColumn(name = "Offre")
        private Offer school; 
        /* GETTERS SETTERS CONSTRUCTORS */
    }
0 голосов
/ 08 февраля 2019

Я не думаю, что ошибка, которую вы видите, связана с конфигурацией отправленных вами бинов.Boot создает этот entityManager от вашего имени и не может успешно.

Проверьте этот пост - это может быть ключ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...