2017-12-19 24 views
0

を入力して検索しましたが、これまでのところ私の質問に対する回答は検索されていませんでした。Spring Data JPAの2つのテーブルエンティティにwhere句

クイック説明:

人の缶は、複数の役割を持ち、役割が権限を持つ多対多の関係を持っています。

私は、エンティティ、役割持っている:私はこのように、これら2つのテーブルを結合したかった

@Entity 
@Data 
@NoArgsConstructor 
@AllArgsConstructor 
@Table(name = "PRIVILEGE") 
@Where(clause = "RECORD_STATUS = 'A'") 
@SQLDelete(sql = "UPDATE PRIVILEGE SET RECORD_STATUS = 'D' where OBJID = ?") 
public class Privilege extends BaseEntity implements Serializable { 

    private String description; 
    private String privilegeName; 



} 

@Entity 
@Data 
@NoArgsConstructor 
@AllArgsConstructor 
@Table(name = "ROLE_PRIVILEGE") 
@Where(clause = "RECORD_STATUS = 'A'") 
@SQLDelete(sql = "UPDATE ROLE_PRIVILEGE SET RECORD_STATUS = 'D' where OBJID 
= ?") 
public class RolePrivilege extends BaseEntity implements Serializable { 

    private String roleOid; 
    private String privilegeOid; 

} 

@Entity 
@Data 
@NoArgsConstructor 
@AllArgsConstructor 
@Table(name = "ROLE") 
@Where(clause = "RECORD_STATUS = 'A'") 
@SQLDelete(sql = "UPDATE ROLE SET RECORD_STATUS = 'D' where OBJID = ?") 
public class Role extends BaseEntity implements Serializable { 

    private String roleDescription; 
    private String roleName; 



    @JoinTable(
     name = "ROLE_PRIVILEGE", 
     joinColumns = @JoinColumn(
       name = "roleOid" 
     ), 
     inverseJoinColumns = @JoinColumn(
       name = "privilegeOid" 
     ) 
    ) 
    @Where(clause = "RECORD_STATUS = 'A'") 
    @ManyToMany(fetch = FetchType.EAGER) 
    List<Privilege> privileges; 
} 

特権エンティティを問題は、私がしようとするときです人の役割を得る、彼らはすべて特権を持って来る。しかし、ROLE_PRIVILEGEのentitiyでwhere句を気にdoesntの休止状態:私は(役割はもうその特権を持っていない)役割特権タプルを無効にすると、まだ私に来る

select 
privileges0_.role_oid as role_oid8_23_0_, 
privileges0_.privilege_oid as privileg7_23_0_, 
privilege1_.objid as objid1_21_1_, 
privilege1_.creation_date as creation2_21_1_, 
privilege1_.last_change_date as last_cha3_21_1_, 
privilege1_.luc as luc4_21_1_, 
privilege1_.record_status as record_s5_21_1_, 
privilege1_.user_created as user_cre6_21_1_, 
privilege1_.description as descript7_21_1_, 
privilege1_.privilege_name as privileg8_21_1_ 
from 
role_privilege privileges0_ 
inner join 
    privilege privilege1_ 
    on privileges0_.privilege_oid=privilege1_.objid 
where 
(
    privilege1_.RECORD_STATUS = 'A' 
) 
and privileges0_.role_oid=? 

私は意味、。 ROLE_PRIVILEGEテーブルに@where句をどこに追加できますか?

すべてのアドバイスは、非常にappriciatedです!

答えて

関連する問題