Пример отображения компонента Hibernate
Компонент Hibernate представляет собой группу значений или свойств, а не сущность (таблица). См. Следующий учебник, чтобы понять, как компонент работает в 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
иAddress.java
, чтобы представить таблицу «customer» выше.
Файл: Customer.java
package com.example.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.example.customer; public class Address implements java.io.Serializable { private String address1; private String address2; private String address3; //setters and getters }
В этом случаеAddress.java
- это «component», представляющее столбцы «Address1», «Address2» и «Address3» дляCustomer.java
.
3. Сопоставление компонентов
Теперь вы можете объявить сопоставление компонентов следующим образом:
Файл: Customer.hbm.xml
4. Запустить его
Создайте объект Address, включите его в объект Customer и сохраните его.
package com.example; import java.util.Date; import org.hibernate.Session; import com.example.customer.Address; import com.example.customer.Customer; import com.example.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("example"); 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 exampledb.customer (CUST_NAME, AGE, ADDRESS1, ADDRESS2, ADDRESS3, CREATED_DATE, CREATED_BY) values (?, ?, ?, ?, ?, ?, ?) Done
Скачать -Hibernate-Component-Mapping-Example.zip (10 КБ)