hibernate使用注解

原创 2016年05月31日 18:55:14

重复配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;
	}
	
}





相关文章推荐

Hibernate使用JPA注解代码

  • 2016年02月16日 17:05
  • 7.56MB
  • 下载

使用Hibernate tools,实现将数据表生成注解型代码(全解)

安装Hibernate tools 【1】根据eclipse版本,选择相应版本的Hibernate tools URL连接。 【2】打开eclipse,Help->Install New Soft...
  • lisq037
  • lisq037
  • 2013年06月08日 17:41
  • 6448

hibernate 注解@Formula解析和使用简介

一.hibernate 注解@Formula即hibernate提取属性也叫做计算属性,该属性值是一个值读属性,是通过使用sql语句获取得到的,常用的是统计数据。 例如:我有一个employee实体...

使用注解风格学习Hibernate和JPA的主键生成策略

主键是关系数据库中的一个基本概念,它用来保证记录的唯一性。简单来说,就是同一张数据库表中,不允许存在多条相同主键的记录。主键生成策略,就是当向数据库表中插入记录的时候,这个记录的主键该如何生成。绝大部...

使用注解的Hibernate one-to-many映射

One to many映射关系指的是两个实体间一个实体可以和多个实体有关联关系,但是多的这一端只能和一的这一端的一个实例有关系。它是一个1 到 n的关系。例如在任何的公司员工可以注册多个银行账户,一个...

使用注解风格学习Hibernate和JPA的4种主键生成策略

Hibernate内置了很多主键生成策略,这些策略可以分为两类:一类是JPA标准的主键生成策略,一类是Hibernate框架特有的主键生成策略。JPA标准策略有4种:auto策略、table策略、se...

hibernate使用@Scheduled注解执行定时任务

hibernate使用@Scheduled注解执行定时任务很方便,不废话,说过程: 1,在配置文件中的合适位置添加,每个人的配置文件可能不一样,至于位置你一看就知道。 xmlns:task=http:...

使用注解方式进行spring和hibernate整合

整合spring和hibernate需要五个要素,分别包括持久化的类, 数据源,SessionFactory, TransactionManager和持久化操作的DAO类。 持久化类: [...
  • yang_ai
  • yang_ai
  • 2016年07月29日 23:05
  • 1072

Hibernate学习(4)- 注解的使用

Hibernate 注解
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hibernate使用注解
举报原因:
原因补充:

(最多只允许输入30个字)