JPA에서 데이터베이스 테이블과 매핑되는 클래스입니다.
@Entity // DB 테이블과 매핑됨
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) // 자동 증가 (Auto Increment)
private Long id;
@Column(nullable = false, length = 100)
private String name;
@Column(unique = true)
private String email;
}
@Entity → 클래스가 DB 테이블과 매핑됨@Id → 기본 키 (Primary Key) 지정@GeneratedValue → 기본 키 자동 생성 (Auto Increment)@Column → 필드와 DB 컬럼 매핑Spring Data JPA에서는 JpaRepository<T, ID> 인터페이스를 상속하여 데이터를 쉽게 다룰 수 있습니다.
public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByEmail(String email); // 이메일로 조회하는 메서드
}
JpaRepository<User, Long> → User 엔티티를 다루며, 기본 키 타입은 LongfindByEmail(String email) → 메서드 이름만으로 자동 SQL 생성 (메서드 쿼리 기능)📌 SQL 없이도 데이터를 쉽게 조회 가능!
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User createUser(String name, String email) {
return userRepository.save(new User(name, email)); // INSERT 실행
}
public Optional<User> getUserByEmail(String email) {
return userRepository.findByEmail(email); // SELECT 실행
}
}
📌 JPA를 사용하면 SQL 없이 save()와 findByEmail()만으로 데이터 조작 가능!