Этот класс не определяет IdClass - PullRequest
0 голосов
/ 20 марта 2020

My for class Class1Item - это ссылка на запись в Class1. Hibernate нуждается во мне, чтобы определить @IdClass. Определение собственного класса с Id из Class1 не сработало для меня.

Вот ошибка, которую я получаю:

org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка создания бина с именем 'requestMappingHandlerAdapter', определенного в ресурсе пути класса [org / springframework /boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: неудовлетворенная зависимость, выражаемая параметром метода requestMappingHandlerAdapter 1; Вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем 'mvcConversionService', определенного в ресурсе пути к классу [org / springframework / boot / autoconfigure / web / servlet / WebMvcAutoConfiguration $ EnableWebMvcConfation factory_ange.set_setlass: viaan.set_set_set_seture метод не удался; вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [org.springframework.format.support.FormattingConversionService]: метод фабрики 'mvcConversionService' вызвал исключение; вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем bookItemRepository: сбой вызова метода init; Вложенное исключение: java .lang.IllegalArgumentException: Этот класс [class de.models.Class1Item] не определяет IdClass

Соответствующие классы, которые находятся в одном пакете:

import javax.persistence.*;
import javax.validation.constraints.NotNull;

import lombok.*;

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

@Entity
@Setter
@Getter
@NoArgsConstructor
@IdClass(Class1ItemId.class)
public class Class1Item implements Serializable {

    @Id
    @ManyToOne
    @JoinColumn(name="reference")
    private Class1 class1;

    @NotNull
    @GeneratedValue
    private Long number;

    @Column(name="date_one")
    private LocalDate date1;

    @Column(name="date_x")
    private LocalDate dateX;

    @ManyToOne
    @JoinColumn(name="userReference")
    private User userReference;

    @ManyToMany
    @JoinColumn(name="waitingUsers")
    private List<User> waitingUsers;

    @NotNull
    @Enumerated(EnumType.STRING)
    @Column(name="enumX")
    private EnumX enumX;

}

import javax.persistence.*;
import javax.validation.constraints.NotBlank;

import lombok.*;

import java.io.Serializable;

@Entity
@Setter
@Getter
@NoArgsConstructor
public class Class1 implements Serializable {

    @Id
    @NotBlank
    private String key;

    @NotBlank
    private String name;

    @NotBlank
    private String nameF;

    @NotBlank
    private String nameL;

    private String path;
}

import javax.persistence.*;
import javax.validation.constraints.NotNull;

import lombok.*;

import java.io.Serializable;
import java.util.Set;

@Entity
@Setter
@Getter
@NoArgsConstructor
public class User implements Serializable {

    @Id
    @Column(name="UserID")
    private Long id;

    @NotNull
    @Column(name="email",unique=true)
    private String email;

    @NotNull
    @Column(name="user_firstname")
    private String firstName;

    @NotNull
    @Column(name="user_lastname")
    private String lastName;

    @NotNull
    @Column(name="isAdmin")
    private Boolean isAdmin;

    @ManyToMany
    @Column(name="wantedItems")
    private Set<Class1Item> wantedItems;

    @OneToMany
    @Column(name="borrowedItems")
    private Set<Class1Item> itemsBorrowed;
}

import javax.persistence.Id;
import java.io.Serializable;

public class Class1ItemId implements Serializable {
    @Id
    private String key;
}

Как исправить эту ошибку, когда фактически определен IdClass?

1 Ответ

1 голос
/ 20 марта 2020

У вас есть определенный @IdClass, но не ключ, повторно объявленный в вашем ClassItem @Entity. Они должны совпадать.

Вы должны добавить их так:

@Entity
@IdClass(Class1ItemId.class)
// others
public class Class1Item implements Serializable {

    @Id
    private String key; // from your Class1ItemId

  // others

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