2012-01-06 4 views
0

I가 두 표 표 A 표 BJPA 쿼리 - 조 가입

열 X 열 Y 열 Z 열

W

테이블을 포함하는

도표 B 포함 된 항목

열 P 열 Q 열 R

열 W W 열 두 테이블에 공통이다.

과 단체

제 1 개체

@Entity 
@Table(name = "A") 
@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 
public class TableA extends AbstractBaseEntity { 

    @Id 
    @NotNull 
    @Column(name = "X") 
    private Long sampleId1; 

    @Id 
    @NotNull 
    @Column(name = "Y") 
    private Long sampleId2; 

    @Id 
    @NotNull 
    @Column(name = "Z") 
    private Date sampleDate3; 

    @ManyToOne(targetEntity = TableB.class) 
    @JoinColumn(name = "W") 
    private TableB tableB; 

    ... 
    getter 
    setter 
    .... 
} 

2 실체는

@Entity 
@Table(name = "TableB") 
@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) 
public class TableB extends AbstractBaseEntity { 

    @Id 
    @NotNull 
    @Column(name = "W") 
    private Long sampleId4; 

    @Id 
    @NotNull 
    @Column(name = "P") 
    private Long sampleId1; 

    @Id 
    @NotNull 
    @Column(name = "Q") 
    private Long sampleId2; 

    @Id 
    @NotNull 
    @Column(name = "R") 
    private Long sampleId3; 

    ... 
    getter 
    setter 
    .... 
} 

나는 모든 쿼리가 기록 된 인터페이스를 가지고

Public interface sqlquery{ 

      String query1 = "from TableA ORDER BY" + 
       sampleDate3 asc;"; 

      String query2= "from TableB"; 

} 

지금은 나는 데이터가 가입하여 동일한 ID 즉 SampleId4 (열 W) 을 기준으로 표시되어야 새로운 단일 쿼리를 작성에 도움이 필요,이 쿼리에서 개별적으로 모든 데이터를 가져 오는 있어요 절과 어디에. 을 입력하고 결과 목록에 데이터를 저장하십시오.

+0

http://stackoverflow.com/questions/463349/jpa-eager-fetch-does-not-join의 복제본처럼 보입니다. – Vlad

답변

1

매핑이 의미가 없습니다. 표 B의 모든 열이 ID의 일부인 경우 열 W에 동일한 값을 가진 행이 여러 개있을 수 있습니다. 따라서 표 A의 행에이 공유 값이 있으면 실제로 모든 열을 참조합니다 TableA와 TableB 사이에는 ManyToOne 연관이 없습니다.

쿼리에 관해서는 매핑이 처음부터 잘못 되었기 때문에 필자는 어떻게 작성했는지 알지 못합니다. 끝이라도 끝나면 쿼리가 반환해야하는 내용을 말해야합니다. 명확하지 않기 때문입니다.