首页 > 其他分享 >Hibernate注解详细介绍

Hibernate注解详细介绍

时间:2023-03-01 12:32:28浏览次数:36  
标签:Hibernate String default 详细 import 注解 public 属性


声明实体Bean

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Person implements Serializable {
Long id;
@Id
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
}

   @Entity 注解将一个类声明为实体 Bean, @Id 注解声明了该实体Bean的标识属性。  

    Hibernate 可以对类的属性或者方法进行注解。属性对应field类别,方法的 getXxx()对应property类别。


定义表

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import javax.persistence.Version;
@Entity
@Table(name="persons",
uniqueConstraints = {@UniqueConstraint(columnNames={"month", "day"})}
)
public class Person implements Serializable {
private Integer version;
@Version
@Column(name="OPTLOCK")
public Integer getVersion() {return version;}
}

   通过 @Table 为实体Bean指定对应数据库表,目录和schema的名字。

 @Table 注解包含一个schema和一个catelog 属性,使用@UniqueConstraints 可以定义表的唯一约束。

 上述代码在  "month" 和 "day" 两个 field 上加上 unique constrainst.

@Version 注解用于支持乐观锁版本控制。

  version属性映射到 "OPTLOCK" 列,entity manager 使用这个字段来检测冲突。 一般可以用 数字 或者 timestamp 类型来支持 version.  


 实体Bean中所有(非static 非 transient 属性)都可以被持久化,除非用@Transient注解。  

  @Transient的作用 :
  用于注释pojo对象中的属性,被注释的属性将成为短暂的,不会持久化到数据库的“短暂”属性。

默认情况下,所有属性都用 @Basic 注解。

public transient int counter; //transient property  
private String firstname; //persistent property
@Transient
String getLengthInMeter() { ... } //transient property
String getName() {... } // persistent property
@Basic
int getLength() {...} // persistent property
@Temporal(TemporalType.TIME)
java.util.Date getDepartureTime() { ... } // TemporalType.TIME表示只记录时间, TemporalType.DATE表示只记录日期,TemporalType.TIMESTAMP表示日期和时间都记录
@Enumerated(EnumType.STRING)
Starred getNote() { ... } //标注枚举类型

 上述代码中 counter, lengthInMeter 属性将忽略不被持久化,而 firstname, name, length 被定义为可持久化和可获取的。

  @TemporalType.(DATE,TIME,TIMESTAMP) 分别Map java.sql.(Date, Time, Timestamp).

@Lob 注解属性将被持久化为 Blob 或 Clob 类型。具体的java.sql.Clob, Character[], char[] 和 java.lang.String 将被持久化为 Clob 类型. java.sql.Blob, Byte[], byte[] 和 serializable type 将被持久化为 Blob 类型。

@Lob 
public String getFullText() {
return fullText; // clob type
}
@Lob
public byte[] getFullCode() {
return fullCode; // blog type
}

@Column 注解将属性映射到列。

@Column(updatable = false, name = "pname", nullable = false, length=50)  
public String getName() { ... }

  定义 name 属性映射到 pname  列, not null, can't update, length equal 50

 column中的属性

name="columnName";                //(1) 列名  
boolean unique() default false; //(2) 是否在该列上设置唯一约束
boolean nullable() default true; //(3) 列可空?
boolean insertable() default true;//(4) 该列是否作为生成 insert语句的一个列
boolean updatable() default true; //(5) 该列是否作为生成 update语句的一个列
String columnDefinition() default "";//(6) 默认值
String table() default ""; //(7) 定义对应的表(deault 是主表)
int length() default 255; //(8) 列长度
int precision() default 0; //(9) decimal精度
int scale() default 0; //(10) decimal长度


标签:Hibernate,String,default,详细,import,注解,public,属性
From: https://blog.51cto.com/yxkong/6093428

相关文章

  • 推荐系统[四]:精排-详解排序算法LTR (Learning to Rank)_ poitwise, pairwise, listwis
    0.前言召回排序流程策略算法简介推荐可分为以下四个流程,分别是召回、粗排、精排以及重排:召回是源头,在某种意义上决定着整个推荐的天花板;粗排是初筛,一般不会上复杂模型......
  • ClickHouse(13)ClickHouse合并树MergeTree家族表引擎之CollapsingMergeTree详细解析
    目录建表折叠数据算法资料分享参考文章该引擎继承于MergeTree,并在数据块合并算法中添加了折叠行的逻辑。CollapsingMergeTree会异步的删除(折叠)这些除了特定列Sign有1和-1......
  • jQuery中的on方法详细介绍
    on()方法在被选元素及子元素上添加一个或多个事件处理程序。如需移除事件处理程序,请使用off()方法。如需添加只运行一次的事件然后移除,请使用on......
  • 路飞项目使用mysql数据库详细讲解
    目录一、首先需要彻底删除原有的数据库步骤二、去官网下载mysql步骤三、安装mysql数据库步骤四、一管理员身份进去cmd进行一系列命令启动五、接下来为路飞项目创建数据库六......
  • linux 环境启动jar服务, 启动脚本详细解释
    掰碎了讲一个jar包启动文件.当前服务目录如下#ls/easy/test/info/->binmytest.jar#ls/easy/test/info/bin/->spring-boot.shspring-boot.sh文件内容如......
  • java方法参数(超详细)
    前言在上一篇文章中,壹哥给大家讲解了方法的定义、调用和返回值,但方法的内容还有很多,比如方法的参数是怎么回事?接下来壹哥会在这篇文章中,继续给大家讲解方法参数相关的知识......
  • 在Eclipse配置安装Android详细教程(新手)
    下载开发资源1、下载最新的AndroidSDK​​https://code.google.com/android/download.html​​选择Windows版本的SDK,下载后直接解压缩就可以使用,为了在控制台中直接使......
  • Django中配置文件的详细解读
    Django中配置文件的详细解读importos.pathfrompathlibimportPath#Buildpathsinsidetheprojectlikethis:BASE_DIR/'subdir'.#1.项目的根目录#/User......
  • 【Spring】@Import注解
    (181条消息)@Import注解_ZmyCoder的博客-CSDN博客_@import 1、@Import注解须知@Import只能用在类上,@Import通过快速导入的方式实现把实例加入spring的IOC容器中......
  • 基于注解的AOP
    1、引入依赖<!--springaop依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><ver......