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中使用注解

Annotation在项目中的使用越来越多,同样hibernate中支持Annotation,如果在hibernate中使用注解,从而轻XML配置,从下面简单的小例子加以说明。 1、实体类Emp.ja...
  • yyywyr
  • yyywyr
  • 2014年03月30日 11:32
  • 6989

(非常全面)Hibernate注解的使用方法说明

1.类级别注解 @Entity     映射实体类 @Table    映射数句库表   @Entity(name="tableName") - 必须,注解将一个类声明为一个实...
  • u012312373
  • u012312373
  • 2015年06月19日 22:45
  • 4672

Hibernate注解使用方法总结

1.类级别注解 @Entity     映射实体类 @Table    映射数句库表   @Entity(name="tableName") - 必须,注解将一个类声明为一个实体bean。 属性: ...
  • ARYBD
  • ARYBD
  • 2016年07月29日 15:00
  • 11594

Hibernate使用注解,继承映射写法

继承映射在 Annotation 中使用 @Inheritance 注解,并且需要使用 strategy 属性指定继承策略,继承策略有 SINGLE_TABLE、TABLE_PER_CLASS 和 J...
  • yeyun89757
  • yeyun89757
  • 2014年08月19日 20:24
  • 2998

Hibernate一对一关联映射(注解)

hibernate一对一关联映射有两种方式,一种是基于外键方式(常用),一种是基于主键方式 一、首先我们来看基于外键一对一关联映射:   1.数据表关联映射图 ...
  • hardworking0323
  • hardworking0323
  • 2016年04月10日 18:13
  • 7012

Spring 整合 Hibernate(注解方式)

spring整合Hibernate其实就是Spring来管理Hibernate的SessionFactory,以及配置事务的操作。 在Hibernate的配置文件中只有一个SessionFactory...
  • Julyraining
  • Julyraining
  • 2015年12月08日 19:47
  • 1838

hibernate实体—复合主键、视图的注解配置方法

有时一个实体的主键可能同时为多个,例如同样是之前使用的“CustomerEO”实体,需要通过name和email来查找指定实体,当且仅当name和email的值完全相同时,才认为是相同的实体对象。要配...
  • wlp_name
  • wlp_name
  • 2013年01月28日 12:34
  • 4658

hibernate注解简单使用

最近刚学的hibernate,用来写东西,出现挺多问题的,特别最麻烦的就是多表关联的配置好麻烦,配置不好后面的操作会出现一堆问题,所以下面说的都是简单实用。 前提:这篇对hibernate的注解的一些...
  • name_z
  • name_z
  • 2016年05月04日 21:53
  • 5884

Hibernate二级缓存提升性能(注解方式)

合理的缓存应用可以极大地提高系统性能
  • jrn1012
  • jrn1012
  • 2014年09月22日 21:07
  • 1629

Hibernate使用注解映射取代映射文件

在编写hibernate的时候,需要将实体类映射到数据库中的表。通常需要一个配置文件(hibernate.cfg.xml),一个实体类(XX.Java),还有一个映射文件(XX.hbm.xml)。从J...
  • bestcxx
  • bestcxx
  • 2016年06月08日 16:43
  • 1508
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hibernate使用注解
举报原因:
原因补充:

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