2009-06-29 5 views
0

java로 구현 된 비즈니스 로직이있는 지속성 레이어로 oracle TopLink를 사용하고 있습니다. 표현식 및 표현식 빌더 클래스를 사용하여 데이터베이스에서 데이터를 가져옵니다. 문제는 데이터베이스 테이블에 중복 행이 없습니다.하지만 ReadObjectQuery 클래스를 통해 데이터베이스를 쿼리 할 때 데이터베이스 테이블과 동일한 양의 행을 받지만 모든 레코드가 첫 번째 레코드를 표시 할 때마다 첫 번째 레코드가 복제됩니다.Oracle TopLink : 실수로 레코드 복제하기

가능한 한 빨리

답변

0

으로 도와 당신이 당신의 매핑에 정의한 기본 키 필드가 모두 고유하지 않은 경우이 문제가 일반적으로 나타하시기 바랍니다. 무슨 일이 일어나는가, Toplink는 첫 번째 행을 검색하여이를 Java 객체로 변환합니다. 연속 행의 경우 정의 된 기본 키 필드는 첫 번째 행의 것과 동일합니다. 따라서, Toplink은 변환을 다시하지 않고 캐시에서 동일한 키를 가진 객체, 즉 첫 번째 행에 관련된 객체를로드합니다.