JPA
JPA
Entity
Annotation書き込み@Entity指定クラスがEntity、@Tableの名前が@Idprimaryキー値が@ColumnDB列、@GenerateValueのポリシー設定を指定
package com.example.jpa.model.entity;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.time.LocalDateTime;
@Data
@Entity
@RequiredArgsConstructor
//@AllArgsConstructor 모든 매개변수가 들어가는 생성자
public class User {
@Id
private Long id;
// @Column(name = "account") db와 이름이 같은 변수명으로 선언하면 jpa에서 자동으로 매칭해준다
private String account;
private LocalDateTime createdTime; // db에서 created_time인데 jpa에서 자동으로 매칭
private String updatedTime;
private String email;
}
public interface UserRepository extends JpaRepository<User, Long>
extends JpaRepository
entity
package com.example.jpa.model.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.time.LocalDateTime;
@Data
@Entity
@NoArgsConstructor // 기본생성자
@AllArgsConstructor //모든 매개변수가 들어가는 생성자
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// @Column(name = "account") db와 이름이 같은 변수명으로 선언하면 jpa에서 자동으로 매칭해준다
private String account;
private LocalDateTime createdTime; // db에서 created_time인데 jpa에서 자동으로 매칭
private String updatedTime;
private String email;
}
test code
package com.example.jpa.repository;
import com.example.jpa.JpaApplication;
import com.example.jpa.model.entity.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.time.LocalDateTime;
@SpringBootTest
public class UserRepositoryTest extends JpaApplication {
// DI
@Autowired
private UserRepository userRepository;
@Test
public void create(){
User user = new User();
user.setAccount("test01");
user.setCreatedTime(LocalDateTime.now());
user.setEmail("[email protected]");
System.out.println(user.toString());
userRepository.save(user);
}
DBに保存されていることを確認できます.
application.propertyファイルのspring.jpa.show-sql=trueをに設定すると、実行したsql文をコンソールウィンドウで表示できます.
@Transactional
データベースに対してクエリーを実行しても、最後にロールバックされます.
DBに適用せずにクエリ実行結果を表示するときに使用できます.
Reference
この問題について(JPA), 我々は、より多くの情報をここで見つけました https://velog.io/@jjeom122/JPAテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol