hibernate常用注解

@Entity
@Table(name="tb_orders")
@BatchSize(size=5) //当懒加载是容易出现n+1问题,该注解表示每次可以加载5条懒加载的代理对象,(如果有10个代理对象,没有该注解会发出10条语句查询这10个代理对象,有该注解则只需要2次),解决n+1问题,更倾向于使用join fetch
@DynamicInsert//在hibernate动态生成insert语句时,只生成有只值得字段
@DynamicUpdate//只生成修改的字段 update person set name=? where id=? ,margin()方法也是同样的效果
public class Person{
}

1.枚举类型
@Enumerated(EnumType.ORDINAL)

 2.抓取策略
@Fetch(FetchMode.SUBSELECT)
private List employees = new ArrayList<>();
//FetchMode.SELECT 先查询部门,获取每个部门的员工都会发送一条sql
//FetchMode.SUBSELECT 先查询部门,获取每个部门员工时,通过子查询一次查出所有部门的所有员工 
//FetchMode.JOIN   通过关联查询一次查出所有部门所有员工
3.标识符
(1)简单标识符
javax.persistence.Id注释
javax.persistence.GeneratedValue表示生成一个标识符属性(只能作用于shortintlong)
(2)符合标识符
@Entity
public class Login {
    @EmbeddedId
    private PK pk;
    @Embeddable
    public static class PK implements Serializable {
        private String system;
        private String username;
    }
}

你可能感兴趣的:(hibernate,hibernate)