hibernate使用注解

重复配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/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

	<!-- Hibernate session factory -->
	<!-- org.springframework.orm.hibernate3.LocalSessionFactoryBean
	org.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
@DynamicUpdate
public 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值