Hibernate的一些操作
自动创建数据库表结构
<hibernate-configuration> <session-factory> <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property> //validate 只做校验 //update 更新表结构 //create-drop 根据实体改变表结构 <property name="hibernate.hbm2ddl.auto">create-drop</property> ... <!-- Persistent classes --> <mapping class="com.mycompany.myapp.domain.Client"/> <mapping class="com.mycompany.myapp.domain.Order"/> ... </session-factory> </hibernate-configuration>
Annotation
@Id //声明属性为主键 @GeneratedValue //表示主键是自动生成策略,一般该注释和 @Id 一起使用 @Entity //任何 hibernte 映射对象都要有此注释 @Table(name = “tablename”) //类声明此对象映射到哪个表 @Column(name=“Name”, nullable=false, length=32) //声明数据 库字段和类属性对应关系 @OneToMany(mappedBy=”order”,cascade = CascadeType.ALL, fetch = FetchType.LAZY) @OrderBy(value = " id ASC" ) //一对多声明,和 ORM 产品声明类似,一看就明白了。 @ManyToOne(cascade=CascadeType.REFRESH,optional=false) @JoinColumn(name = " order_id" ) @Temporal(value=TemporalType.DATE) 做日期类型转换。 @OneToOne(optional= true,cascade = CascadeType.ALL, mappedBy = " person" ) //一对一关联声明 @OneToOne(optional = false, cascade = CascadeType.REFRESH) @JoinColumn(name = "Person_ID" , referencedColumnName = " personid" ,unique = true)