ключ findByForeign в весенней загрузке - PullRequest
0 голосов
/ 12 октября 2019

Я добавил внешний ключ как таковой:

@ManyToOne
@JoinColumn
private UserEntity userEntity;

И в моей таблице есть следующие столбцы:

CREATE TABLE `web_course` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `coursename` varchar(255) DEFAULT NULL,
  `description` varchar(255) DEFAULT NULL,
  `user_entity_user_id` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `FK6eys4s4qx87rxo0ha68q05oc8` (`user_entity_user_id`),
  CONSTRAINT `FK6eys4s4qx87rxo0ha68q05oc8` FOREIGN KEY (`user_entity_user_id`) REFERENCES `web_user` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

Я хотел бы создать метод findByUserId в:

@Repository
public interface CourseRepository extends JpaRepository<CourseEntity, Long> {

Я пробовал несколько комбинаций напрасно:

public CourseEntity findByUserId(int user_id)
public CourseEntity findByUserEntityUserId(int user_id)
public CourseEntity findBy_User_entity_user_id(int user_id)

Я прочитал, что существует соглашение об именах, но не могу найти правильное соглашение, так как получаю:

Error creating bean with name 'courseController': Unsatisfied dependency expressed through field 'courseRepository';

Курс:

package com.finaly.projectback.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@Entity
@Table(name = "web_course")
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
public class CourseEntity {

    @ManyToOne
    @JoinColumn
    private UserEntity userEntity;

    public UserEntity getUserEntity() {
        return userEntity;
    }

    public void setUserEntity(UserEntity userEntity) {
        this.userEntity = userEntity;
    }

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id", updatable = false, nullable = false)
    private long id;

    @Column(name = "coursename")
    private String coursename;

    @Column(name = "description")
    private String description;

    public CourseEntity() {
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getCoursename() {
        return coursename;
    }

    public void setCoursename(String coursename) {
        this.coursename = coursename;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public CourseEntity(UserEntity userEntity, long id, String coursename, String description) {
        super();
        this.userEntity = userEntity;
        this.id = id;
        this.coursename = coursename;
        this.description = description;
    }

    @Override
    public String toString() {
        return "CourseEntity [userEntity=" + userEntity + ", id=" + id + ", coursename=" + coursename + ", description="
                + description + "]";
    }
}

Может кто-нибудь указать мне правильное направление, пожалуйста?

1 Ответ

0 голосов
/ 12 октября 2019

Следующий код должен работать:

public CourseEntity findByUserEntity_UserId(int user_id)

Проверьте журналы, чтобы увидеть, создан ли репозиторий курса или нет. Ошибка указывает, что контроллер не может быть создан из-за проблемы с зависимостями.

Ошибка создания компонента с именем courseController: Неудовлетворенная зависимость выражается через поле courseRepository

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