JPA开发经验总结

JPA开发经验总结

Repository

1
2
3
4
5
public interface UserRepository extends JpaRepository<User, Long> {
// 自动实现CRUD
Optional<User> findByUsername(String username);
List<User> findByAgeGreaterThan(int age);
}

复杂查询

1
2
3
4
5
@Query("SELECT u FROM User u WHERE u.username = ?1")
User findByNameCustom(String name);

@Query(value = "SELECT * FROM user WHERE name = :name", nativeQuery = true)
User findByNameNative(@Param("name") String name);

事务

1
2
@Transactional
public void save(User user) {}

总结

JPA简化了数据访问层的开发。