Позвольте мне ответить на этот вопрос:
Прежде всего, использование аннотаций в качестве нашего метода конфигурации - это просто удобный метод вместо копирования бесконечного XML файла конфигурации.
Аннотация @Id
наследуется от javax.persistence.Id
,, указывая, что поле элемента ниже является первичным ключом текущего объекта. Следовательно, ваш Hibernate и Spring Framework, а также вы можете сделать некоторые reflect
работы на основе этой аннотации. для получения подробной информации, пожалуйста, проверьте javado c для Id
Аннотация @GeneratedValue
предназначена для настройки способа приращения указанного столбца (поля). Например, при использовании Mysql
, вы можете указать auto_increment
в определении таблицы, чтобы сделать его самоинкрементным, а затем использовать
@GeneratedValue(strategy = GenerationType.IDENTITY)
в коде Java, чтобы обозначить, что вы также подтвердили использовать эту стратегию на стороне сервера базы данных. Кроме того, вы можете изменить значение в этой аннотации для соответствия различным требованиям.
1. Определить последовательность в базе данных
Например, Oracle должен использовать sequence
в качестве метода приращения, скажем, мы создаем последовательность в Oracle:
create sequence oracle_seq;
2. См. Последовательность базы данных
Теперь, когда у нас есть последовательность в базе данных, но нам нужно установить sh отношение между Java и БД, используя @SequenceGenerator
:
@SequenceGenerator(name="seq",sequenceName="oracle_seq")
sequenceName
- настоящее имя последовательности в Oracle, name
- это то, что вы хотите назвать в Java. Вам нужно указать sequenceName
, если он отличается от name
, в противном случае просто используйте name
. Я обычно игнорирую sequenceName
, чтобы сэкономить свое время.
3. Используйте последовательность в Java
Наконец, пришло время использовать эту последовательность в Java. Просто добавьте @GeneratedValue
:
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq")
Поле generator
указывает, какой генератор последовательности вы хотите использовать. Обратите внимание, что это не реальное имя последовательности в БД, а имя, которое вы указали в name
поле SequenceGenerator
.
4. Complete
Таким образом, полная версия должна выглядеть следующим образом:
public class Cart
{
@Id
@SequenceGenerator(name="seq",sequenceName="oracle_seq")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq")
private Integer id;
}
Теперь начните использовать эти аннотации, чтобы упростить разработку JavaWeb.
Кроме того, я хотел бы, чтобы вы поняли все 4 способа генерации идентификаторов в спящем режиме. Вы можете читать в свободное время
- GenerationType.AUTO
- GenerationType.IDENTITY (ваш случай)
- GenerationType.SEQUENCE
- GenerationType .TABLE {Редко используется в наши дни}