Автор оригинала: mkyong.
Компонент Hibernate представляет собой группу значений или свойств, а не сущность (таблицу). Смотрите следующий учебник, чтобы понять, как компонент работает в режиме гибернации.
1. Таблица клиентов
Смотрите таблицу клиентов ниже.
Таблица клиентов, SQL-скрипт в базе данных MySQL.
CREATE TABLE `customer` ( `CUST_ID` int(10) unsigned NOT NULL AUTO_INCREMENT, `CUST_NAME` varchar(10) NOT NULL, `AGE` int(10) unsigned NOT NULL, `ADDRESS1` varchar(255) NOT NULL, `ADDRESS2` varchar(255) NOT NULL, `ADDRESS3` varchar(255) NOT NULL, `CREATED_DATE` date NOT NULL, `CREATED_BY` varchar(10) NOT NULL, PRIMARY KEY (`CUST_ID`) USING BTREE );
2. Класс модели
Теперь создайте два класса моделей, Customer.java
и Адрес.java
, чтобы представить таблицу ” клиент ” выше.
Файл: Customer.java
package com.mkyong.customer; import java.util.Date; public class Customer implements java.io.Serializable { private Integer custId; private String custName; private int age; private Address address; private Date createdDate; private String createdBy; //setters and getters }
Файл: Address.java
package com.mkyong.customer; public class Address implements java.io.Serializable { private String address1; private String address2; private String address3; //setters and getters }
В этом случае Адрес.java
является ” компонентом “, представляющим “Адрес1″, ” Столбцы “Адрес2” и “Адрес3” для Customer.java
3. Сопоставление компонентов
Теперь вы можете объявить сопоставление компонентов следующим образом:
Файл: Customer.hbm.xml
4. Запустите его
Создайте объект адреса, включите его в объект Клиента и сохраните его.
package com.mkyong; import java.util.Date; import org.hibernate.Session; import com.mkyong.customer.Address; import com.mkyong.customer.Customer; import com.mkyong.util.HibernateUtil; public class App { public static void main(String[] args) { System.out.println("Hibernate component mapping"); Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Address address = new Address(); address.setAddress1("Address 1"); address.setAddress2("Address 2"); address.setAddress3("Address 3"); Customer cust = new Customer(); cust.setCustName("mkyong"); cust.setAge(30); cust.setAddress(address); cust.setCreatedDate(new Date()); cust.setCreatedBy("system"); session.save(cust); session.getTransaction().commit(); System.out.println("Done"); } }
Выход…
Hibernate component mapping Hibernate: insert into mkyongdb.customer (CUST_NAME, AGE, ADDRESS1, ADDRESS2, ADDRESS3, CREATED_DATE, CREATED_BY) values (?, ?, ?, ?, ?, ?, ?) Done
Ссылка
Оригинал: “https://mkyong.com/hibernate/hibernate-component-mapping-example/”