JPA Hibernate OneToMany Enum - ошибка несопоставленного класса - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь сохранить набор Enum в своем классе Entity с помощью JPA / Hibernate, но я получаю сообщение об ошибке, касающееся «несопоставленного класса», хотя у меня фактически есть Enum. Что я делаю не так?

Ошибка, которую я получаю: (отформатирована в несколько строк для удобства чтения)

org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'entityManagerFactory' defined in class path resource 
 [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: 

Invocation of init method failed; 
nested exception is org.hibernate.AnnotationException: 
Use of @OneToMany or @ManyToMany targeting an unmapped class: path.to.my.MyEnum

Декларация

@Entity(name=MyEntity)
@Table(name=myentity)
public class MyEntity {

    ....

    @ElementCollection
    @OneToMany(fetch = FetchType.EAGER, orphanRemoval = true)
    @Enumerated(EnumType.STRING)
    private Set<MyEnum> something;

    ....
}

Мой Enum:

public enum MyEnum {

    ONE("one string"),
    TWO("two string"),
    THREE("three string");

    private final String name;

    private MyEnum(String name) {
        this.name = name;
    }


    @Override
    public String toString() {
        return name;
    }
}

1 Ответ

1 голос
/ 14 апреля 2020

Вы можете использовать аннотации @OneToMany только для классов, помеченных @Entity. Удалите аннотацию, и она должна работать.

...