EJB之JPA(save操作)

package com.cnblogs.pojo;

import java.io.Serializable;

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

/**
 * 定义这是一个entityBean
 * @author asus
 *
 */
@Entity
@Table(name="person")//映射表名称为person
public class Person implements Serializable{//实现可序列化接口.方便远程调用
    /**
     * 这个ID是一定要定义的,hibernate也一样要定义.
     * 如果我们只定义一个ID.不定义他的生成策略,就相当与没有生成策略,要我们自己设定他的ID值.
     * 如果我们指定他的生成策略.就是@GeneratedValue.这样,就相当与会自动生成ID.
     * 他会根据数据库选择生成策略.如果是MYSQL.就是以IDENTITY方式生成主键
     * 如果是ORACLE就是以Sequence方式生成主键.
     * 跟Hibernate的native是一个意思.
     * @GeneratedValue(strategy=GenerationType.TABLE)
     * 这种方式通过一个表来实现主键id的自增,这种方式不依赖于具体的数据库,可以解决数据迁移的问题
     * 所以,这个主键的方式,我们不设置括@GeneratedValue的属性.或者设置为TABLE.方便数据迁移. 
   * 关于table策略.下章会详细讲解.如果我们需要用String类型的ID.数据库又自动生成.也就是hibernate的UUID也是可以的.不过需要引入JAR包.下一章同样会给出方法.
*/ @Id @GeneratedValue private int id; /** * column字段主要有以下属性: * name:字段名 * unique:是否唯一 * nullable:是否可以为空 * inserttable:是否可以插入 * updateable:是否可以更新 * columnDefinition:定义建表时创建此列的DDL * secondaryTable:从表名。如果此列不建在主表上(默认建在主表),该属性定义该列所在从表的名字。 * 这里我们根据情况常用的是name,unique,nullable */ @Column(name="username",unique=false) private String name; @Column(name="password",nullable=false) private String passwd; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPasswd() { return passwd; } public void setPasswd(String passwd) { this.passwd = passwd; } }

猜你喜欢

转载自blog.csdn.net/qq_34530405/article/details/80757813
EJB