欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hibernate 实体类

程序员文章站 2022-04-14 20:41:34
...

– Start

  1. 我们把与表对应的类称之为实体类,用 @Entity 修饰
  2. 类名与表名可以不一致,如果不一致,需要使用 @Table 设置
  3. 每个表都有主键,我们需要用 @Id 修饰主键字段
  4. 列名和字段名可以不一致,如果不一致,需要使用 @Column 设置
  5. 如果列和字段类型不匹配,我们需要通过 @Type 告诉 Hibernate 如何进行类型转换
  6. 如果一个字段在数据库中没有对应的列,需要用 @Transient 修饰
  7. 每一实体类必须有个无参的构造方法
  8. 通常我们无需实现 equals() 和 hashCode() 方法,如果要实现,必须与主键一致。
  9. Hibernate 到底是通过 getter 和 setter 访问字段还是直接访问呢?它根据 @Id 修饰字段还是方法来决定。
package shangbo.hibernate.demo004;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.Type;

@Entity // 我们把与表对应的类称之为实体类,用 @Entity 修饰
@Table(schema = "HR", name = "CUSTOMER") // 类名与表名可以不一致,如果不一致,需要使用 @Table 设置
public class Customer {
	@Id // 每个表都有主键,我们需要用 @Id 修饰主键字段
	@Column(name = "ID") // 列名和字段名可以不一致,如果不一致,需要使用 @Column 设置
	@Type(type = "int") // 如果列和字段类型不匹配,我们需要通过 @Type 告诉 Hibernate 如何进行类型转换
	private Integer customerId;

	// 列名与字段名一致,无需特殊设置
	private String customerName;

	// 如果一个字段在数据库中没有对应的列,需要用 @Transient 修饰
	@Transient
	private String onlyInJava;

	// 每一实体类必须有个无参的构造方法
	public Customer() {
	}

	public Customer(Integer customerId, String customerName) {
		this.customerId = customerId;
		this.customerName = customerName;
	}

	public Integer getCustomerId() {
		return customerId;
	}

	public void setCustomerId(Integer customerId) {
		this.customerId = customerId;
	}

	public String getCustomerName() {
		return customerName;
	}

	public void setCustomerName(String customerName) {
		this.customerName = customerName;
	}
}

– 更多参见:Hibernate 精萃
– 声 明:转载请注明出处
– Last Updated on 2019-06-11
– Written by ShangBo on 2019-06-11
– End