JPA 복합 키의 삭제 수정 작업

2948 단어 Java 백엔드 지식
1. JPA와 복합 키의 소개
JPA는 전체 Java Persistence API라고 하며 데이터베이스에 데이터를 저장하는 데 사용되는 클래스와 방법의 집합입니다.JPA는 JDK를 통해 5.0 메모 또는 XML 설명 객체 - 관계표의 매핑 관계식을 사용하여 런타임의 엔티티 객체를 데이터베이스에 영구화합니다.JPA는 타사 ORM 프레임워크를 통합하기 위한 표준화된 API 구축을 목표로 하고 있다.현재 JPA는 Oracle, Redhat, Eclipse 등을, Hiberate, Eclipselink, Toplink, Spring Data JPA 등을 공급하고 있다.복합 키란 데이터베이스 기록의 유일한 줄을 확인하기 위해 여러 필드가 필요하다는 뜻이다.이렇게 하면 여러 필드가 함께 주 키를 구성하는 것을 연합 주 키라고도 부른다.예를 들어 PC의 모든 응용 프로그램의 네트워크 정보를 하나의 데이터 테이블에 저장하면 IP와 포트를 복합 키로 설정할 수 있다.
2. JPA에서 복합 키 사용
JPA의 복합 키 구현을 위한 SQL 언어는 다음과 같습니다.
CREATE TABLE user_project(
  user_id            INT(20),
  project_id         INT(20),
  timestamp         VARCHAR (50),
  donate_money       DOUBLE(10,2),
  PRIMARY KEY (user_id,project_id)
);

코드에서 복합 키를 실현하는 방식은 두 가지가 있는데 하나는 @IdClass 주석을 통해 복합 키 대상을 지정하는 것이다.다른 하나는 복합 키 대상 + @Embeddable, 실체 대상 + @Embedded 주석을 통해서입니다.@IdClass에 대한 설명은 여기서 설명하지 않습니다. @Embedded와 @Embedded의 실현 방식은 다음과 같습니다.
//   
@Embeddable
public class PrimaryKey implements Serializable{
    private Integer a_id;
    private Integer b_id;
    public Integer getA_id() {
        return a_id;
    }
    public void setA_id(Integer a_id) {
        this.a_id = a_id;
    }
    public Integer getB_id() {
        return b_id;
    }
    public void setB_id(Integer b_id) {
        this.b_id = b_id;
    }
}

//   
@Entity
@Table(name="A")
public class A{
    @EmbeddedId
    private PrimaryKey idCLass;

    public PrimaryKey getIdCLass() {
        return idCLass;
    }
    public void setIdCLass(PrimaryKey idCLass) {
        this.idCLass = idCLass;
    }
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

3. 복합 키의 삭제 및 수정
3.1 복합 키와 함께 데이터베이스를 저장하는 추가 작업은 단일 키만 저장하는 것과 같습니다.
4
  • 하나의 실체를 저장한다.repository.save(T entity)

  • 4
  • 여러 개의 실체를 저장하고repository.save(Iterable< T> entities)

  • 4
  • 하나의 실체를 저장하고 즉시 갱신합니다,repository.saveAndFlush(T entity)

  • 3.2 조회 조작에 복합 키가 있는 데이터베이스의 조회 조작은 복합 키를 전체로 조회할 수 있는PrimaryKey = new PrimaryKey().primaryKey.setA_id(1); primaryKey.setB_id(2); repository.findOne(primaryKey); 3.3 업데이트 작업 업데이트 작업에 대한 참조 코드는 다음과 같습니다.
        @Transactional
        @Modifying
        public void update(A a) {
                A finda = repository.findOne(a.getIdCLass());   //   repository    JpaRepository   
                finda.set(secondlevelEntity.getName());
        }
    

    3.4 삭제 작업 삭제 작업에 대한 참조 코드는 다음과 같습니다.
     @Transactional
        @Modifying
        public void update(A a) {
                A finda = repository.findOne(a.getIdCLass());   //   repository    JpaRepository   
                repository.delete(finda);
        }
    

    참고 문헌
    1. JPA 입문 2.spring은 jpa를 사용하여 업데이트 작업을 진행합니다.JPA의 결합 키 [복합 키] 4.Spring Data Jpa 복합 주 키 5.spring jpa를 사용하여 업데이트 작업 6.Spring Data JPA 첨삭 수정 사항

    좋은 웹페이지 즐겨찾기