hibernate使用注解

来源:互联网 发布:咨询警察网络平台 编辑:程序博客网 时间:2024/06/06 02:20

重复配hibernate-mapping导致工作量加大,一张表要配置一个hibernate-mapping

使用注解

1.org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean

下有个方法

public void setPackagesToScan(String... packagesToScan) {
this.packagesToScan = packagesToScan;
}

packagesToScan=》指定使用了注解的类所在的包下即可,不用重复配置hibernate-mapping

2.<!-- 不加 <prop key="hibernate.hbm2ddl.auto">update</prop> 数据库有对应的表没事,没表的话就会异常 -->
  <prop key="hibernate.hbm2ddl.auto">update</prop> 



<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/tx       http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><!-- Hibernate session factory --><!-- org.springframework.orm.hibernate3.LocalSessionFactoryBeanorg.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean --><bean id="sessionFactory"class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><property name="dataSource"><ref bean="dataSource" /></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><prop key="hibernate.show_sql">true</prop><!-- 不加<prop key="hibernate.hbm2ddl.auto">update</prop> 数据库有对应的表没事,没表的话就会异常 --> <prop key="hibernate.hbm2ddl.auto">update</prop> </props></property><!--  <property name="mappingResources"><list><value>com/yiibai/customer/hibernate/Customer.hbm.xml</value></list></property> --><!-- 使用注解 --><property name="packagesToScan" value="com.yiibai.customer.model"/></span></bean><!-- 事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><!-- 注解驱动,声明使用注解式事务 --><!-- 设置proxy-target-class="true"可以注入实现类,默认只能注入接口 --> <tx:annotation-driven transaction-manager="transactionManager"                         proxy-target-class="true"/>                     <!--    事务代理 --> <bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"><property name="transactionManager" ref="transactionManager" /><property name="transactionAttributes"><props><prop key="*">PROPAGATION_REQUIRED</prop></props></property></bean></beans>



实体类

package com.yiibai.customer.model;import java.util.Date;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;import org.hibernate.annotations.DynamicUpdate;import org.hibernate.annotations.GenericGenerator;@Entity@DynamicUpdatepublic class Customer implements java.io.Serializable {/** *  */private static final long serialVersionUID = 1L;private int customerId;private String name;private String address;private Date createdDate;public Customer() {}public Customer(String name, String address, Date createdDate) {this.name = name;this.address = address;this.createdDate = createdDate;}@Id@GeneratedValue//@GenericGenerator(name = "", strategy = "")public int getCustomerId() {return this.customerId;}public void setCustomerId(int customerId) {this.customerId = customerId;}public String getName() {return this.name;}public void setName(String name) {this.name = name;}public String getAddress() {return this.address;}public void setAddress(String address) {this.address = address;}public Date getCreatedDate() {return this.createdDate;}public void setCreatedDate(Date createdDate) {this.createdDate = createdDate;}}





0 0
原创粉丝点击