Hibernate 实体类

– 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

你可能感兴趣的:(Hibernate)