Ответ 1
Позвольте мне ответить на этот вопрос:
Прежде всего, использование аннотаций в качестве нашего метода configure - это просто удобный метод вместо того, чтобы справляться с бесконечным файлом конфигурации XML.
Аннотация @Id
наследуется от javax.persistence.Id
, указывая, что поле члена ниже является первичным ключом текущего объекта. Следовательно, ваш Hibernate и spring рамки, а также вы можете сделать некоторые reflect
работы, основанные на этой аннотации. подробнее см. javadoc для Id
Аннотация @GeneratedValue
заключается в настройке способа увеличения указанного столбца (поля). Например, при использовании Mysql
вы можете указать auto_increment
в определении таблицы, чтобы сделать его самоинкрементным, а затем использовать
@GeneratedValue(strategy = GenerationType.IDENTITY)
в коде Java, чтобы обозначить, что вы также признали, что используете эту стратегию на стороне сервера базы данных. Кроме того, вы можете изменить значение в этой аннотации, чтобы соответствовать различным требованиям.
1. Определить последовательность в базе данных
Например, Oracle должен использовать sequence
в качестве метода приращения, например, мы создаем последовательность в Oracle:
create sequence oracle_seq;
2. См. Последовательность базы данных
Теперь, когда у нас есть последовательность в базе данных, но нам нужно установить связь между Java и DB, используя @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. Полная
Итак, полная версия должна быть такой:
public class MyTable
{
@Id
@SequenceGenerator(name="seq",sequenceName="oracle_seq")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq")
private Integer pid;
}
Теперь начните использовать эти аннотации, чтобы упростить разработку JavaWeb.