Hibernate(一) 主键映射

@Id注解可以将实体bean中的摸个属性定义为表示符,该属性可以通过应用自身进行设置,也可通过Hibernate生成(推荐),使用@GeneratedValue注解可以定义该标识的生成策略:

.AUTO

.TABLE

.IDENTITY

.SEQUENCE

 

 

 

package com.woxiaoe.study.hibernate;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Student {
	private int id;
	private int age;
	private String name;
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)//@GeneratedValue默认为AUTO
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	
}
/**
	 * 
    create table Student (
        id integer not null auto_increment,
        name varchar(255),
        age integer not null,
        primary key (id)
    )

	 */

 TableGenerator(要注意pkColumnName,valueColumnName 的值不能为数据库关键字

 

 

@Entity
@TableGenerator(
		name="TB_GEN",
		table = "GENERATOR_TABLE",
		pkColumnName="pKey",
		valueColumnName = "pId",
		pkColumnValue = "id",
		allocationSize=20//增长量
)

public class Student {
	private int id;
	private int age;
	private String name;
	@Id
	@GeneratedValue(strategy=GenerationType.TABLE,generator = "TB_GEN")
	public int getId() {
		return id;
	}
…………

 

 基于主键生成器

@Entity
public class Student {
	private BigInteger id;
	private int age;
	private String name;
	@Id
	//@GeneratedValue(strategy=GenerationType.TABLE,generator = "TB_GEN")
	@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "java5_uuid")
	@GenericGenerator(name = "java5_uuid", strategy = "com.woxiaoe.study.hibernate.util.UUIDGenerator")//自定义的生成策略
	@Column(name = "id", precision = 65, scale = 0)//定义字段长度
	public BigInteger getId() {
		return id;
	}

 

 

 

你可能感兴趣的:(Hibernate,bean)