HQL列表OneToMany

时间:2016-08-16 19:08:57

标签: java hibernate hql one-to-many

我需要hql查询给我一个App_ModuloDto的列表,其中App_ModuloDto .listLink.id在(20,21,23 ...)

@Table(name = "APP_LINK")
public class App_LinkDto implements DTO{

    private static final long serialVersionUID = 1L;

    @Id @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="gen_LINK")
    @SequenceGenerator(name="gen_LINK", sequenceName = "SEQ_APP")
    @Column(name="ID",nullable = false)
    private int id;

    @Column(name="NOMBRE")
    private String nombre;

    @Column(name="URL")
    private String url;

    @ManyToOne(fetch=FetchType.EAGER)//para cagar los dato on demand, LAZILY para cargar los datos cuando se haga un get al bean
    @JoinColumn(name="ID_MODULO", nullable=false, updatable=false)  
    private App_ModuloDto modulo;

    @Column(name="ORDEN")
    private String orden;

    @Column(name="ACT")
    private String act;

而且:

@Table(name = "APP_MODULO")
public class App_ModuloDto implements DTO{

    private static final long serialVersionUID = 1L;

    @Id @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="gen_USERS")
    @SequenceGenerator(name="gen_USERS", sequenceName = "SEQ_APP")
    @Column(name="ID",nullable = false)
    private int id;

    @Column(name="NOMBRE")
    private String nombre;

    @Column(name="ORDEN")
    private String orden;

    @ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name="ID_APP", nullable=false, updatable=false)
    private App_AppDto app;

    @Column(name="ACT")
    private String act;

    @OneToMany(targetEntity=App_LinkDto.class,mappedBy="modulo",fetch=FetchType.EAGER)
    @OrderBy(clause = "orden ASC")
    private List<App_LinkDto> listLink;

我有这个hql查询:

SELECT m FROM App_ModuloDto m JOIN m.listLink ll WHERE ll.id in (20,21,23) ORDER BY m.orden ASC

问题是App_ModuloDto.listLink总是返回所有项目而不仅仅是id(1,2,3)的任何想法?

0 个答案:

没有答案