主键映射
注解配置
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id;
XML配置
<id name="id" column="id"> <!-- 主键的生成策略 --> <generator class="identity"/> </id>
Hiberante主键生成策略 http://www.cnblogs.com/hoobey/p/5508992.html
普通属性映射
注解配置
@Basic @Column(nullable = true) private String username;
XML配置
<!-- 配置其他的属性 --> <property name="username" column="username"/>
组件映射
注解配置
组件类 @Embeddable public class Name { ... } 组件属性 @Embedded @AttributeOverrides({ @AttributeOverride(name = "firstName", column = @Column(name = "firstName")) @AttributeOverride(name = "lastName", column = @Column(name = "lastName")) }) private Name name;
XML配置
<component name="name" class="com.jimisun.domain.Name"> <property name="first" column="first"/> <property name="last" column="last"/> <component>
一对一关联映射
我们看完了一对一映射我们可以看一下多对一的的映射,这些都是在实际的应用开发中经常用到的,这里提到的单向映射就是单向映射关系,例多个订单和用户之间是多对一的映射关系,但是转换为Java对象来进行表示的时候就是,订单的对象中拥有其所属的用户对象,但是用户对象中并没有包含其拥有的订单,这种单向的映射关系就是单向映射,下面示例是多个订单和用户的单向关联关系表示商品详情hbm.xml<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping>
<!-- 配置类和表结构的映射 -->
<class name="com.jimisun.domain.ProductDetail" table="product_details">
<!-- 配置id
见到name属性,JavaBean的属性
见到column属性,是表结构的字段
-->
<id name="id" column="id" type="int">
<!-- 主键的生成策略 -->
<generator class="foreign">
<param name="property">product</param>
</generator>
</id>
<!-- 配置其他的属性 -->
<property name="detatil" column="detatil"/>
<one-to-one name="product" class="com.jimisun.domain.Product" constrained="true"/>
</class></hibernate-mapping>
多对一单向关联映射
配置多的一方
<many-to-one name="customer" column="customer_id" class="com.jimisun.domain.Customer" cascade="all"/>
public static void main(String[] args) {
Session session = HibernateSessionFactory.getSession();
Transaction transaction = session.beginTransaction();
Customer customer = new Customer();
customer.setName("bea");
Order order = new Order();
order.setNumber("1333");
order.setCustomer(customer);
session.save(order);
transaction.commit();
Integer id = order.getId();
Transaction transaction1 = session.beginTransaction();
Order order1 = session.get(Order.class, id); if (order != null) {
System.out.println("Customer:" + order.getCustomer().getName());
System.out.println("OrderNumber:" + order.getNumber());
}
transaction1.commit();
session.close();
}
多对一双向关联映射
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章