今天上午上课了,下面是课堂笔记,里面记录了一些原来可能讲过但却忘了的一些东西
Hibernate中用的约束是dtd的:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
Element : session-factory
Content Model : (property*, mapping*, (class-cache | collection-cache)*,event*, listener*)
Element是元素节点
,有序的,顺序就为显示出得这样
* 0到多
? 0到1
+ 0到多
|互斥,(class-cache | collection-cache)*,无序的
Element : property
Data Type : #PCDATA
#PCDATA:是元素声明中的类型,指的是混合类型,即可以包子元素也可包含字符串,&和<也是具有特殊含义被解析。
Hbm2ddl主要用途:根据映射文件自动生成数据库Schema
Hbm2ddl的取值在这里就不再列举了,想知道可以参看《Hbm2ddl》。
注:Validate不能验证出长度,但可以验证出not-null还有表结构,比如加了个字段,会报错。可以参看《hibernate中的三个异常》
Ddl含义:数据定义语言(data definition language)
定义主键时可以用一下两种方式:
1、业务主键【符合主键】:<composite-id>
<key-property name=""></key-property>
</composite-id>
2、逻辑主键:<id></id>
这两种方式不能同时出现,两者互斥,但是两者中必须出现一个
主键的生成策略:<generator class=”native”></generator>
Class的取值可以参考《主键的生成策略》
配置一般属性:
<!-- type="java.lang.String"在数据库中对应的类型 -->
<property name="realName"type="java.lang.String">
<column name="realName"length="40" not-null="true"/>
</property>