SQL 삽입 및 SQL 업데이트에서 불필요한/빈 필드를 줄이는 방법이 있습니까?최대 절전 모드 엔티티 저장 최적화?
예를 들어, 최대 10 자리 열이있는 테이블에 매핑 된 단일 최대 절전 모드 엔티티 클래스가 있습니다. 실제로 데이터를 채우는 과정은 두 단계로 이루어집니다. 사용자가 요청을 제출할 때 최대 절전 모드 엔티티가있는 테이블에 요청 정보를 삽입하지만 7 개의 필드 만 채 웁니다. 일부 처리 후 (예를 들어 다른 사용자 상호 작용을 기다리는), 나머지 3 개의 필드 (이전 삽입에서 제공된 ID로)를 채 웁니다.
1) ID로 식별 엔티티를로드하는
2) 생성 엔티티를 저장, 다음과 같이
내가 두 번째 업데이트, 하나의 엔티티 클래스에 충실하면, 내가 할 단계입니다 모든 필드를 넘기는 것 같습니다.
또는 두 개의 엔티티 클래스를 만들고 동일한 테이블을 가리킨 다음 별도로 저장하십시오.
누구에게 더 좋은 제안이 있습니까?
켄트
편집 : 정말 달성하기 위해 좋아하는 무엇
는 다음과 같은 효과에 뭔가 (???) 삽입 t (ID, 필드 1, FIELD2) 갱신 t 세트 FIELD3 =? field4 =? 여기서 id =?
지금은 = 사실 dynamicUpdate는 t에서 삽입 t (ID, 필드 1, FIELD2) (?,?,?) 선택 필드 1, FIELD2, FIELD3, 입력란 4 인으로 달성 할 수있는 가장 좋은 곳 ID =? 업데이트 t 설정 field3 =? field4 =? 여기서 id =?
select 문을 제거 할 수있는 방법이 있습니까? 원래 지속 된 개체는 삽입 후 메모리의 아무 곳에도 저장되지 않습니다.
추가 참고 사항. 엔티티 클래스는 Hibernate 유효성 검사와 함께 주석이 달려있다. 저는 현재 위의 원하는 효과를 얻기 위해 노력하고 있습니다. 그래서 나는 그것들을 주석 처리했습니다. 하지만 다시 켜면 @NotNull 및 @NotEmpty로 인해 유효성 검사 오류가 발생합니다. 단지 변경된 필드가 데이터베이스로 전송됩니다 엔티티의 상단에
@org.hibernate.annotations.Entity(dynamicUpdate = true)
: 당신은 주석을 추가 할 경우
dynamicUpdate = true가 완벽하게 작동합니다. – sqlnewbie