javaEE Hibernate, 实体规则, 主键生成策略

JavaBean实体类的属性类型不能使用基本类型,需要使用对应的包装类型(引用类型);这样就可以和数据库中的NULL值进行映射。

没有主键id的数据库表,Hibernate不会与实体类进行映射。



src/cn/xxx/domain/Customer.hbm.xml(Customer实体类与数据表的映射关系配置文件,主键生成策略):

<?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 package="cn.xxx.domain" >
	<class name="Customer" table="cst_customer" >
		<id name="cust_id"  >
			<!-- generator:主键生成策略.就是添加记录时,主键的生成规则.(7个)
					identity : 主键自增.由数据库来维护主键值.录入时不需要指定主键.(数据库自身维护主键)
					sequence: Oracle中的主键生成策略.(数据库自身维护主键)
					increment(了解): 主键自增.由hibernate来维护.每次插入前会先查询表中id最大值.+1作为新主键值.(线程不安全)			
					hilo(了解): 高低位算法.主键自增.由hibernate来维护.开发时不使用.(主键一般由数据库自身维护,不需要由hibernate来维护)
					native:hilo+sequence+identity 自动三选一策略.
					uuid: 产生随机字符串作为主键. 主键类型必须为string 类型.
					assigned:自然主键生成策略. hibernate不会管理主键值.由开发人员自己录入.
			 -->
			<generator class="increment"></generator>
		</id>
		<property name="cust_name" column="cust_name" ></property>
		<property name="cust_source" column="cust_source" ></property>
		<property name="cust_industry" column="cust_industry" ></property>
		<property name="cust_level" column="cust_level" ></property>
		<property name="cust_linkman" column="cust_linkman" ></property>
		<property name="cust_phone" column="cust_phone" ></property>
		<property name="cust_mobile" column="cust_mobile" ></property>
	</class>
</hibernate-mapping>


猜你喜欢

转载自blog.csdn.net/houyanhua1/article/details/81051408