powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring MVC. Иерархия классов и автоматическая генерация id через супер класс
8 сообщений из 8, страница 1 из 1
Spring MVC. Иерархия классов и автоматическая генерация id через супер класс
    #39332165
sklyanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Подскажите, пожалуйста, как задать автоматическую генерацию id через супер класс, если он не является entity.
Вот пример..
Например, у меня есть два типа аудио релизов - CD и MP3
Имею один суперкласс:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
@MappedSuperclass
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Release {

@Id
 private int id;
 private String name;
 private int year;
 private String length;

//Здесь всякие геттеры и сеттеры
}



И два класса, соответствующие таблицам в бд

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
@Entity
@Table(name = "cd")
public class CdRelease extends Release {
 @ManyToOne( fetch=FetchType.LAZY)
  @JoinColumn(name="cdtypeid")
  private CdType CdType;
  //Здесь всякие геттеры и сеттеры
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
@Entity
@Table(name = "mp3")
public class VideoRelease extends Release {
 @ManyToOne( fetch=FetchType.LAZY)
  @JoinColumn(name="mp3typeid")
  private Mp3Type mp3ype;
  //Здесь всякие геттеры и сеттеры
}



Хочу использовать аннтоацию, которая генерит id с помощью sequence в бд.
Добавляю две строчки кода в супер классе
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
@MappedSuperclass
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@SequenceGenerator(name = "release_seq", sequenceName = "SEQ_RELEASE" )
public abstract class Release {

@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "release_seq")
 private int id;
 private String name;
 private int year;
 private String length;

//Здесь всякие геттеры и сеттеры
}



Возникает ексепшн:
org.hibernate.AnnotationException: Unknown Id.generator: release_seq

Что я делаю не так?
...
Рейтинг: 0 / 0
Spring MVC. Иерархия классов и автоматическая генерация id через супер класс
    #39332203
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sklyanka,
вы далеко от БД не отходите.
Если в БД две таблицы, то ID у каждой свой. И чаще всего сиквенс генератор тоже на каждую.
...
Рейтинг: 0 / 0
Spring MVC. Иерархия классов и автоматическая генерация id через супер класс
    #39332249
sklyanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
хочется сделать непересекающиеся id...
...
Рейтинг: 0 / 0
Spring MVC. Иерархия классов и автоматическая генерация id через супер класс
    #39332252
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда у вас один ко многим из 3-х таблиц. В каждой по генератору и счётчику.
Так?
Ищите пример один ко многим в сети и делаете демку.
...
Рейтинг: 0 / 0
Spring MVC. Иерархия классов и автоматическая генерация id через супер класс
    #39332455
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sklyankaPetro123,
хочется сделать непересекающиеся id...

Тогда для них один sequence. :-)
...
Рейтинг: 0 / 0
Spring MVC. Иерархия классов и автоматическая генерация id через супер класс
    #39332500
sklyanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgul,

Я и пытаюсь использовать один sequence... но hibernate ругается
...
Рейтинг: 0 / 0
Spring MVC. Иерархия классов и автоматическая генерация id через супер класс
    #39332548
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
org.hibernate.AnnotationException: Unknown Id.generator: release_seq

видимо sequence нужно создать сначала прежде чем использовать
...
Рейтинг: 0 / 0
Spring MVC. Иерархия классов и автоматическая генерация id через супер класс
    #39334009
sklyanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем, спасибо. Разобралась. Нужно было аннотацию @SequenceGenerator прописать у каждого дочернего класса, а вот в супер классе у параметра id указать @GeneratedValue.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring MVC. Иерархия классов и автоматическая генерация id через супер класс
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]