Дозвольте мені відповісти на це запитання:
Перш за все, використання анотацій як наш метод конфігурації - це просто зручний метод замість того, щоб впоратися з нескінченним конфігураційним файлом XML.
@Id
Анотації успадковується від javax.persistence.Id
, що вказує на поле члена нижче первинний ключ поточного об'єкта. Отже, ваш Hibernate та spring framework, а також ви можете робити деякі reflect
роботи на основі цієї анотації. для деталей перевірте javadoc на наявність ідентифікатора
@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.