Hibernate常用配置.

实体类注解配置:

//实体配置
@Entity
@Table(name = "T_AGENT_INFO")
public class AgentInfo {

	/**全局GID**/
	private Long gid;
	/**登录名**/
	private String loginName;
	/**默认套餐资费**/
	private TariffInfo defaultTariff;
	/**默认资费: 名称**/
	private String tariffName;

	//主键列配置
	@Id
	@GeneratedValue
	@Column(name = "GID", unique = true, nullable = false, length=22)
	public Long getGid() {
		return gid;
	}

	public void setGid(Long gid) {
		this.gid = gid;
	}

	//普通列配置.
	@Column(name = "LOGIN_NAME", nullable = false, length=20)
	public String getLoginName() {
		return loginName;
	}

	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}

	//关系配置,
	@ManyToOne( cascade = {CascadeType.PERSIST}, targetEntity=TariffInfo.class )
	@JoinColumn(name="DEFAULT_TARIFF")
	public TariffInfo getDefaultTariff() {
		return defaultTariff;
	}

	public void setDefaultTariff(TariffInfo defaultTariff) {
		this.defaultTariff = defaultTariff;
	}
	//不进行映射
	@Transient
	public StringgetTariffName() {
		return tariffName;
	}

	public void setTariffName(String tariffName) {
		this.tariffName= tariffName;
	}

}



关系配置:

1. 单向多对一配置:

	@ManyToOne( cascade = {CascadeType.PERSIST}, targetEntity=TariffInfo.class )
	@JoinColumn(name="DEFAULT_TARIFF")
	public TariffInfo getDefaultTariff() {
		return defaultTariff;
	}

单配置这样一个就可以实现. 查询出来的数据进行级联. 而更新则不进行级联更新.

CascadeType 参数说明:

CascadeType.PERSIST只有A类新增时,会级联B对象新增。若B对象在数据库存(跟新)在则抛异常(让B变为持久态) 

CascadeType.MERGE指A类新增或者变化,会级联B对象(新增或者变化) 

CascadeType.REMOVE只有A类删除时,会级联删除B类; 

CascadeType.ALL包含所有; 

CascadeType.REFRESH没用过。 

你可能感兴趣的:(Hibernate)