2014-10-16 2 views
0

데이터베이스에 작업 표가 있습니다. 작업 표 id에 기본 증가 키인 autoincrement가 지정되었습니다. 작업 표에 taskNo, Taskphase, taskdescription 등 다른 coloumns가 있습니다. 작업 표 입력을 저장하기 전에 taskNo 값과 taskphase 값을 확인하려고했습니다. 값이 새 작업 표 항목과 같으면 저장하지 않아야합니다. 즉, 작업에 중복 된 taskNo 및 taskphase가 있는지 확인하는 것입니다.최대 절전 엔터티를 디자인하는 솔루션

먼저 엔티티를 복합 기본 키 (taskno taskphase)로 디자인했습니다. 그러나 나는이 칼럼들을 편집하는 데 필요할지도 모르기 때문에 그 시도를 포기했다.

최대 절전 모드에서 이러한 종류의 설계를 수행하는 가장 좋은 방법은 무엇입니까?

+0

이 게시물에 필요한 답변이있는 것 같습니다. http://stackoverflow.com/questions/2786941/best-way-to-detect-duplicates-when-using-spring-hibernate-template –

답변

1

난 당신이 크게 두 가지 방법

1) 데이터베이스가 중복 된 값을 삽입 할 때 그냥 컬럼에 고유 제한 조건에 넣어 고유성 검사를하자 갈 수 있다고 생각 데이터베이스에서 오류가 발생하는 당신은 UI로 전파 할 수 있습니다.

2) 응용 프로그램에서 유효성 검사를 수행하므로 모든 작업을 읽지 않아도됩니다. 아니요, 새로 고침 한 값이 중복인지 확인하려면 루프를 반복해야합니다.

행 수가 매우 큰 경우 결과 집합 등을 사용하는 것과 같이 데이터베이스에서 지연로드를 사용하는 것이 좋습니다.

0

u는 커밋 저장 전에 유효성 검사 인터페이스를 추가하려고 할 수 있습니다. 처럼 :

`findByTaskNoAndTaskPhase(String taskNo, String taskphase);` 

유 정말 인터페이스의 결과에 기반을 원하는 싶어.

관련 문제