Дозвольте мені відповісти на це запитання:
Перш за все, використання анотацій як наш метод конфігурації - це просто зручний метод замість того, щоб впоратися з нескінченним конфігураційним файлом 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.