SpringDataJPA

主键

  • JPA的使用必须要求数据库表拥有主键字段
1
2
3
4
// 主键字段,自增
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long id;

一对多

1
2
3
4
5
// fetch:表示抓取策略,默认为FetchType.LAZY,因为关联的多个对象通常不必从数据库预先读取到内存 
// cascade:表示级联操作策略,对于OneToMany类型的关联非常重要,通常该实体更新或删除时,其关联的实体也应当被更新删除
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "act_coupon_id")
private List<ActCouponDetail> actCouponDetails;

接口继承

一般接口继承JpaRepository<T, ID>JpaSpecificationExecutor两个接口

1
2
3
4
5
6
7
public interface StoreRepository extends JpaRepository<Store, Long>, JpaSpecificationExecutor{
List<DOrder> findAllBySrlIn(Set<String> srls);

// 如果要返回自定义的类型 需要在@Query中new那个类,否则只能返回Store类型(包含List<T>、Set<T>)
@Query("SELECT new com.dp.datatransfer.service.dto.NameDTO(s.id ,s.storeName,s.contactPhone,s.contactAddress )FROM Store s WHERE s.id IN ?1 ")
List<NameDTO> findNameByIdsContainPhone(Set<Long> ids);
}
赏个🍗吧
0%