休眠@OneToMany DTO @哪里无效

时间:2019-12-03 10:02:07

标签: hibernate spring-data-jpa

我想根据条件竞争找出结果,但有效的方法是ExtendModule.getExtendFieldList上方的注释。我希望上面的注释使用ExtendModuleUndeletedData.getExtendFieldlist生效。

我分析了休眠代理ExtendModuleUndeletedData的原因,当我调用ExtendModuleUndeletedData.getExtendFieldList时,休眠代理调用ExtendModule.getExtendFieldList。

我不希望休眠代理调用注释ExtendModule.getExtendFieldList。我真的很想调用ExtendModuleUndeletedData.getExtendFieldList的注释。

存储库

public interface ExtendModuleRepository extends BaseRepository<ExtendModule> {
    List<ExtendModuleUndeletedData> findByDelIsFalse(String tableName, Sort sort);
}

实体

@Entity
@Table(name = "t_extend_module")
@Getter
@Setter
public class ExtendModule extends CreateBaseEntity {
    private String tableName;
    private String label;
    private int sort;
    private List<ExtendField> extendFieldList;
    private boolean del = false; 


    @OrderBy("sort asc")
    @Where(clause = "del=true")// <---- valid annotation
    @OneToMany(mappedBy = "extendModuleId", cascade = CascadeType.REMOVE)
    public List<ExtendField> getExtendFieldList() {
        return extendFieldList;
    }

    @Column(columnDefinition = "tinyint", length=1)
    public boolean isDel() {
        return del;
    }

}

dto实体

public interface ExtendModuleUndeletedData {

    @OrderBy("sort asc")
    @Where(clause = "del=false")// <---- invalid annotation
    List<ExtendField> getExtendFieldList();

    boolean isDel();

    String getId();

    String getLabel();

    int getSort();
}

ExtendModuleUndeletedData = DTO

ExtendModule =表实体

enter image description here

enter image description here

0 个答案:

没有答案
相关问题