powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Выбор @SequenceGenerator в зависимости от значения
8 сообщений из 8, страница 1 из 1
Выбор @SequenceGenerator в зависимости от значения
    #39606628
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Java+Hibernate5+PostgreSql10.

Есть сущность Account

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
import javax.persistence.*;

@Entity(name = "accounts")
public class Account {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private int id;

    private int accNum;
    private String accType;
    ...
}



В БД созданы 2 последовательности: acc1_seq и acc2_seq.

Как в зависимости от значения поля accType применять acc1_seq или acc2_seq для поля accNum?
Например:
- если accType = USD, то полю accNum присваиваем значение из последовательности acc1_seq.
- если accType = RUB, то полю accNum присваиваем значение из последовательности acc2_seq.
...
Рейтинг: 0 / 0
Выбор @SequenceGenerator в зависимости от значения
    #39606640
rmikki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
такое нельзя

представь что имея две последовательности одна из них когда-нибудь наберет значение равное началу другой последовательности, как бы тогда пришлось разрешать конфликт?
...
Рейтинг: 0 / 0
Выбор @SequenceGenerator в зависимости от значения
    #39606644
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rmikki,
а можно использовать последовательности для неключевых полей?
...
Рейтинг: 0 / 0
Выбор @SequenceGenerator в зависимости от значения
    #39606646
rmikki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
через @GeneratedValue точно нельзя, он служит только для первичного ключа @Id

какие есть другие варианты? может внешний ключ?
...
Рейтинг: 0 / 0
Выбор @SequenceGenerator в зависимости от значения
    #39606671
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar,
Нельзя, и желание странное.
Ведь в некоторых базах вместо счетчика просто тип поля - счетчик
...
Рейтинг: 0 / 0
Выбор @SequenceGenerator в зависимости от значения
    #39606847
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде в Hibernate есть генератор ИД через джава-фукцию...а там,изголяйтесь как у Вас душа хочет.

Знаю, что некторые разработчики ИД через генератор случайных чисел генерируют и считают, что это круто)))
...
Рейтинг: 0 / 0
Выбор @SequenceGenerator в зависимости от значения
    #39607387
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevВроде в Hibernate есть генератор ИД через джава-фукцию...а там,изголяйтесь как у Вас душа хочет.

Знаю, что некторые разработчики ИД через генератор случайных чисел генерируют и считают, что это круто)))

Наверно uuid имеется в виду
...
Рейтинг: 0 / 0
Выбор @SequenceGenerator в зависимости от значения
    #39607390
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artasLeonid KudryavtsevВроде в Hibernate есть генератор ИД через джава-фукцию...а там,изголяйтесь как у Вас душа хочет.

Знаю, что некторые разработчики ИД через генератор случайных чисел генерируют и считают, что это круто)))

Наверно uuid имеется в виду

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

Свои плюсы по сравнению с сиквенсами у данного метода конечно есть (в теории лучше масштабируется при сверх-большой нагрузке). Но выглядит достаточно "необычно". Сложилось впечатление, что этот бест-практис пошел от IBM майнфреймов.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Выбор @SequenceGenerator в зависимости от значения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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