Мне отобразили класс как Объект для сохранения его в базе данных. У меня есть идентификационное поле как первичный ключ так каждый раз, когда объект сохраняется, значение идентификатора получено от последовательности "myClass_pk_seq", код как следующий.
@Entity
@Table(name="myObjects")
public class MyClass {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="sequence")
@SequenceGenerator(name="sequence", sequenceName="myClass_pk_seq", allocationSize=1)
@Column(name="myClassId")
private Integer id;
private Integer code;
...
}
Я должен сделать в атрибуте "кода" что-то подобное идентификатору. У меня должна быть последовательность, таким образом, я могу присвоить для кодирования следующего значения последовательности (для резервирования того значения в случае, если пользователь хочет зарезервировать его, но не сохраняя данные). Я подразумеваю, что пользователь будет видеть поле, если он не будет знать, что войти, он может нажать кнопку и receieve на экране следующее возможное значение (и он может или не принимать его). Как я могу получить следующее значение последовательности, определенной в JPA (и увеличить его значение), не сохраняя данные для не поля первичного ключа?
Я просто хочу иметь метод, которые называют nextval на последовательности связанным с полем "кода", и возвращает значение. Что лучший способ состоит в том, чтобы сделать это в JPA с аннотациями?
Спасибо.
Я просто хочу иметь метод, который вызывает nextval в последовательности, связанной с полем "code", и возвращает значение. Как лучше всего сделать это в JPA с аннотациями?
Оба решения звучат немного некрасиво. Возможно, вы могли бы просто использовать случайный генератор, такой как генератор UUID.
На самом деле вы ничего не упомянули об уникальности кода
(и в аннотациях JPA не указано, что он должен быть уникальным). Почему бы вам не вернуть случайное целое число?