hibernate的简单注解/使用

@Entity      实体,需要插入数据库的对象。

                    必须有一个无参数的构造方法;实体Bean必须声明为public;实体Bean不能被声明为abstract。

@Table     实体对应的表信息

@id           配置主键,可以是一个属性也可以是多个属性的组合。主键可以应用于属性页可以应用于get方法。应用于属性时,改属性的get方法不会被Hibernate调用,可以去掉。

@GeneratedValue 指定主键访问策略

                                   @GeneratedValue(strategy=javax.persistence.GenerationType.IDENTITY)由数据库确定下个主键值。

                                   javax.persistence.GenerationType.AUTO:自动确定主键类型(默认)

                                   javax.persistence.GenerationType.SEQUENCE:主键是SEQUENCE类型字段(自定义主键排序类型)

@SequenceGenerator 使用Hibernate内置或者自定义的各种主键生成策略来生成主键值
@Basic 设置对象属性转载数据库的策略

                fetch:设置装载数据的策略:EAGER-加载时装载所有属性,LAZY-属性被使用时方被装载。(默认为EAGER,使用LAZY需要使用字节增长编译他的Java文件)

                optional:当前属性是否可以为null。

@Transient  不需要持久化的属性可以用transient注释标识。

@Column    列定义的注解

@Enumerated  枚举

@Temporal   描述时间格式

                         @Temporal(TemporalType.DATE)记录年月日,@Temporal(TemporalType.TIMESTAMP)记录准确时间,精确到毫秒,@Temporal(TemporalType.TIME)记录时分秒。

@Lob    大数据类型

import java.util.Date;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.sysmaster.util.EnuSex;

@Entity
@Table(name="T_PEOPLE")
public class People 
{
	private int pid;
	private String name;
	private EnuSex sex;
	private Date birthday;
	private String introduce;
	
	@Id//主键
	@SequenceGenerator(name="seq",sequenceName="SEQ_PEOPLE",initialValue=1,allocationSize=20)
	@GeneratedValue(generator="seq")//使用自定义sequence
	public int getPid() {
		return pid;
	}
	public void setPid(int pid) {
		this.pid = pid;
	}
	@Column(length=10)//设置该属性的长度为10
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

	@Enumerated(EnumType.STRING)//设置为String
	public EnuSex getSex() {
		return sex;
	}
	public void setSex(EnuSex sex) {
		this.sex = sex;
	}
	@Lob
	@Basic(fetch=FetchType.LAZY)//大数据延迟加载,需要使用字节增强编译
	public String getIntroduce() {
		return introduce;
	}
	public void setIntroduce(String introduce) {
		this.introduce = introduce;
	}
	
	@Temporal(TemporalType.TIMESTAMP)//设置时间存入类型
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
}
字节增强编译使用xml 的Ant 编译,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="myh" default="instrument" basedir=".">
  <property name="lib.dir" value="./WEB-INF/lib"/><!--所使用的类库所在位置-->
  <property name="classes.dir" value="../build/classes"/><!--你的编译class文件所在位置 -->
  
  <path id="lib.class.path">
     <fileset dir="${lib.dir}">
         <include name="**/*.jar"/>
     </fileset>
  </path>
  <target name="instrument">
     <taskdef name="instrument"
         classname="org.hibernate.tool.instrument.javassist.InstrumentTask">

        <classpath path="${classes.dir}"/>
        <classpath refid="lib.class.path"/>
     </taskdef>
        
     <instrument verbose="true">
        <fileset dir="${classes.dir}/com/sysmaster/po"><!--文件所在包-->
           <include name="People.class"/><!--需要增强处理的文件-->
        </fileset>
     </instrument>
  </target>
</project>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Files contained in javax.persistence.jar: META-INF/MANIFEST.MF javax.persistence.Access.class javax.persistence.AccessType.class javax.persistence.AssociationOverride.class javax.persistence.AssociationOverrides.class javax.persistence.AttributeOverride.class javax.persistence.AttributeOverrides.class javax.persistence.Basic.class javax.persistence.Cache.class javax.persistence.Cacheable.class javax.persistence.CacheRetrieveMode.class javax.persistence.CacheStoreMode.class javax.persistence.CascadeType.class javax.persistence.CollectionTable.class javax.persistence.Column.class javax.persistence.ColumnResult.class javax.persistence.criteria.AbstractQuery.class javax.persistence.criteria.CollectionJoin.class javax.persistence.criteria.CompoundSelection.class javax.persistence.criteria.CriteriaBuilder.class javax.persistence.criteria.CriteriaQuery.class javax.persistence.criteria.Expression.class javax.persistence.criteria.Fetch.class javax.persistence.criteria.FetchParent.class javax.persistence.criteria.From.class javax.persistence.criteria.Join.class javax.persistence.criteria.JoinType.class javax.persistence.criteria.ListJoin.class javax.persistence.criteria.MapJoin.class javax.persistence.criteria.Order.class javax.persistence.criteria.ParameterExpression.class javax.persistence.criteria.Path.class javax.persistence.criteria.PluralJoin.class javax.persistence.criteria.Predicate.class javax.persistence.criteria.Root.class javax.persistence.criteria.Selection.class javax.persistence.criteria.SetJoin.class javax.persistence.criteria.Subquery.class javax.persistence.DiscriminatorColumn.class javax.persistence.DiscriminatorType.class javax.persistence.DiscriminatorValue.class javax.persistence.ElementCollection.class javax.persistence.Embeddable.class javax.persistence.Embedded.class javax.persistence.EmbeddedId.class javax.persistence.Entity.class javax.persistence.EntityExistsException.class javax.persistence.EntityListeners.class javax.persistence.EntityManager.c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值