Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Выбор @SequenceGenerator в зависимости от значения / 8 сообщений из 8, страница 1 из 1
23.02.2018, 22:42
    #39606628
Molasar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор @SequenceGenerator в зависимости от значения
Добрый день!

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
23.02.2018, 23:54
    #39606640
rmikki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор @SequenceGenerator в зависимости от значения
такое нельзя

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

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

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

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

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

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

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

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

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


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