Хранение списка объектов в сущности

У меня есть Entity, например Fruits. Ее класс:

@Entity
class Fruits {
   @Id
   long id;

   List<Apple> apples;
}

И класс яблока

class Apple {
   String variety;
}

Apple - обертка над строкой в которой я хочу валидировать данные и возможно еще какие-то действия.

Проблема в том, что List в Entity не может содержать не Entity. Как я могу хранить строку из Apple в базе данных, но в классе Fruits хранилось Apple


Ответы (1 шт):

Автор решения: Roman Konoval

Используйте @ElementCollection + @Embeddable, как описано в документации:

@Entity
class Fruits {

    @Id
    private Long id;

    @ElementCollection
    private List<Apple> apples = new ArrayList<>();

    // геттеры и сеттеры
}

@Embeddable
class Apple {

    private String variety;

    // геттеры и сеттеры
}

Это создаст дополнительную таблицу Fruits_apples с двумя полями fruits_id и variety.

→ Ссылка