1.JPQL
a.定义:Java持久化查询语言(JPQL)是一种可移植的查询语言,旨在以面向对象表达式语言的表达式,将SQL语法和简单查询语义绑定在一起·使用这种语言编写的查询是可移植的,可以被编译成所有主流数据库服务器上的SQL。
b.语句:
select u from User u where u.userId=?
2.一对一(OneToOne)
a.UserInfo类拥有User属性(含有user_id外键)
@OneToOne @JoinColumn(name="user_id") private User user;
b.User类拥有UserInfo属性
@OneToOne(mappedBy="user") //谁来维护关系 private UserInfo info;
c.jpql语句
select u from User u left join u.info where u.userId=?
3.一对多(OneToMany)
a.UserInfo类拥有User属性(多方)
@ManyToOne @JoinColumn(name="user_id") private User user; // one 2 one 一定有一方维持关系 谁做外键谁维护
b.User类拥有List<UserInfo>属性(单方)
@OneToMany(mappedBy="user") private List<UserInfo> infos;
c.jpql语句
select u from User u left join fetch u.infos where u.userId=?