回到首页☞
XML配置文件是最基础的配置,而@注解是Java的官方JPA提供的。
所有的注解都是在javax.persistence.*;
package com.wht.vo;import javax.persistence.*;
import java.util.List;/*** 部门实体** @author JDIT*/
@Entity
@Table(name = "t_dept")
public class DeptVO {@Column(name = "dept_name")private String deptName;@Id@GeneratedValue(strategy = GenerationType.AUTO)@Column(name = "dept_no")private Integer deptNo;@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)@JoinColumn(name = "dept_no")private List<EmployeeVO> employeeVOS;public String getDeptName() {return deptName;}public void setDeptName(String deptName) {this.deptName = deptName;}public Integer getDeptNo() {return deptNo;}public void setDeptNo(Integer deptNo) {this.deptNo = deptNo;}public List<EmployeeVO> getEmployeeVOS() {return employeeVOS;}public void setEmployeeVOS(List<EmployeeVO> employeeVOS) {ployeeVOS = employeeVOS;}
}
运行一下创建,可以父子表一起写入,这种配置很容易出问题,如果十几个表关联的时候,更复杂。
了解下即可。
XML配置和@配置引入方式有点不同
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN"".0.dtd" ><hibernate-configuration><session-factory><mapping class="com.wht.vo.EmployeeVO"/><mapping class="com.wht.vo.DeptVO"/><mapping resource="l"/></session-factory>
</hibernate-configuration>
一个实体最好有主键,并且不要使用基本类型而是包装类,因为级联生成没有主键前可以为null,string的当然不需要这么考虑。
@Id@GeneratedValue(strategy = GenerationType.AUTO)@Column(name = "dept_no")
XML类的生成规则这里忽略。
@Column和@Basic都可以用于配置非主键的普通属性。
@Column
@Basic 配置加载方式的,对大文本字段有意义,默认即时加载
@Column(name = "salary",scale = 5,precision = 2,columnDefinition = "int")private Double salary;@Column(name = "remark")@Basic(fetch = FetchType.LAZY,optional = true)private String remark;
忽略
@Temporal(TemporalType.TIMESTAMP)@Column(name = "hire_date")private Date hireDate;
@Transient JPA标准,这个配置是表明这个字段知识POJO用于运算,不参与和DB字段映射。
可以配置在属性上,也可以配置在getter或setter方法上。
Version一种乐观锁,为了确保不同线程对该数据进行操作。
回到首页☞
本文发布于:2024-01-29 05:41:59,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170647812413101.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |