springboot jpa 一对多、多对一级联查询
*************************
相关注解
@OneToMany
public @interface OneToMany {
Class targetEntity() default void.class;
CascadeType[] cascade() default {};
FetchType fetch() default FetchType.LAZY;
String mappedBy() default "";
boolean orphanRemoval() default false;
}
@ManyToOne
public @interface ManyToOne {
Class targetEntity() default void.class;
CascadeType[] cascade() default {};
FetchType fetch() default FetchType.EAGER;
boolean optional() default true;
}
@JoinColum
public @interface JoinColumn {
String name() default "";
String referencedColumnName() default "";
boolean unique() default false;
boolean nullable() default true;
boolean insertable() default true;
boolean updatable() default true;
String columnDefinition() default "";
String table() default "";
ForeignKey foreignKey() default @ForeignKey(ConstraintMode.PROVIDER_DEFAULT);
}
*************************
示例:school student(一个学校有多个学生,一个学生属于一个学校)
******************
级联类
StudentMap
@Entity
@Table(name="student")
public class StudentMap {
@Id
@GeneratedValue(generator = "uuid2")
private Integer id;
private String name;
private Integer age;
@ManyToOne
@JoinColumn(name = "school_id")
private School school;
。。。。
}
******************
dao层
StudentMapRepository
public interface StudentMapRepository extends JpaRepository<StudentMap,Integer> {
}
******************
controller层
StudentMapController
@RestController
public class StudentMapController {
@Autowired
private StudentMapRepository studentMapRepository;
@RequestMapping("/get")
public List<StudentMap> getAll(){
return studentMapRepository.findAll();
}
}
***************************
使用测试
localhost:8080/get