Bom dia pessoall.
Tenho seguinte consulta:
Criteria criteria=getSession().createCriteria(Empresa.class)
.setProjection(Projections.distinct(Projections.projectionList()
.add(Projections.property("id").as("codigo"))
.add(Projections.property("nome").as("nome"))
.add(Projections.property("pacientes").as("pacientes")))
.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
Onde pacientes é set eu preciso saber dele entretanto nesta consulta
o hibernate não inicia o set mesmo colocando o setResultTransformer(Transformers.ROOT_ENTITY), tentei
colocar a anotação @LazyCollection(LazyCollectionOption.EXTRA) em cima do set também não funcionou.
Agradeço qualquer sugestão.
Tentou dar um empresa.getPacientes() na marra pra ver o que acontece ?
Não tem getPacientes e lista projetada.
Eu agradeço ou tra sugestão que vc possa dar.
Como que tá mapeada a sua classe Empresa ?
[code]
@Entity
@Table(name=“tb_empresa”)
public class Empresa implements {
@Id
@SequenceGenerator(name=“seq_empresa”, sequenceName=“seq_empresa”, allocationSize=1)
@GeneratedValue(strategy=GenerationType.AUTO, generator=“seq_empresa”)
@Column(name=“pk_empresa”)
private Long id;
@Column(name="inicio_cobranca")
@Temporal(TemporalType.TIMESTAMP)
private Date inicioCobranca;
@Column(name="num_identificacao")
private String identificador;
@Column(name="tp_identificacao")
private String tipoIdentificador;
@Column(name="adimplente")
private String adimplente;
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="rl_empresa_paciente", joinColumns={@JoinColumn(name="pk_empresa")},inverseJoinColumns={@JoinColumn(name="pk_paciente")})
private Set<Paciente>pacientes;
}[/code]
Agradeço qualquer, sugestão.
@ManyToMany(fetch=FetchType.LAZY)
@JoinTable(name="rl_empresa_paciente", joinColumns= {@JoinColumn(name="pk_empresa")},inverseJoinColumns={@JoinColumn(name="pk_paciente")})
private Set<Paciente>pacientes;
Sua collection está como Lazy, tente recuperar o objeto Empresa, e depois utilizar o getter desse atributo pacientes (tem que existir, se não existir crie um)…
Ao realizar essa linha ele deverá realizar a busca automaticamente e trazer o seu Set preenchido…
Acho que não expliquei bem esta entidade empresa possui relacionamento com outras 40
tabelas do banco, além de possui outros atributos, ou seja, se buscar o objeto todo objeto
a consulta vai ficar muito pesada levando em conta que serão mais de mil empresas cadastradas.
Caso eu faça uma consulta completa virão muito atributos os quais eu não preciso e que irão pesar demais
minha aplicação, dai eu uso o projections que me traz um list de arrays das propiedades que eu
quero.
Caso tenha qual quer outra sugestão por favor me fale.