Рубрики
Без рубрики

Пример сопоставления компонентов гибернации

– Пример отображения компонентов гибернации

Автор оригинала: 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

Ссылка

  1. Документация по компонентам гибернации

Оригинал: “https://mkyong.com/hibernate/hibernate-component-mapping-example/”