我需要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)的任何想法?