AJuda Hibernate Criteria

0 respostas
fabioebner

Pessoal tenho as seguintes tabelas:

CREATE SEQUENCE db_leilao.tb_automovel_seq INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1;
CREATE TABLE db_leilao.tb_automovel(
cd_automovel INTEGER PRIMARY KEY NOT NULL DEFAULT nextval('db_leilao.tb_automovel_seq'),
cd_uf_automovel INTEGER REFERENCES db_lib.tb_uf(cd_uf),
nr_placa_automovel VARCHAR(250),
nr_renavam_automovel VARCHAR(250),
cd_modelo_automovel INTEGER REFERENCES db_leilao.tb_modelo_automovel(cd_modelo_automovel),
dt_ano_fabricacao_automovel DATE,
dt_ano_modelo_automovel DATE,
nr_codigo_seguranca_crv VARCHAR(250),
nr_crv INTEGER,
dt_emissao_crv DATE,
nr_via_crv VARCHAR(250),
dt_venda_automovel DATE
);

CREATE SEQUENCE db_leilao.tb_lote_leilao_seq INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1;
CREATE TABLE db_leilao.tb_lote_leilao(
cd_lote_leilao INTEGER PRIMARY KEY NOT NULL DEFAULT nextval('db_leilao.tb_lote_leilao_seq'),
cd_leilao INTEGER REFERENCES db_leilao.tb_leilao(cd_leilao),
nm_lote_leilao VARCHAR(250) NOT NULL,
ds_lote_leilao TEXT,
cd_parte_vendedor INTEGER REFERENCES db_leilao.tb_parte(cd_parte),
vl_lote NUMERIC(12,2),
ic_lote_finalizado BOOLEAN
);

CREATE TABLE db_leilao.tb_automovel_lote(
cd_lote_leilao INTEGER REFERENCES db_leilao.tb_lote_leilao(cd_lote_leilao),
cd_automovel_lote INTEGER REFERENCES db_leilao.tb_automovel(cd_automovel),
CONSTRAINT tb_automovel_lote_pk PRIMARY KEY (cd_lote_leilao, cd_automovel_lote)
);

q me gerou as seguintes entity:
@Entity
@Table(name = "tb_automovel", catalog = "db_dnaso", schema = "db_leilao")
@NamedQueries({@NamedQuery(name = "TbAutomovel.findAll", query = "SELECT t FROM TbAutomovel t")})
public class TbAutomovel implements Serializable {
    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "cd_automovel", nullable = false)
    private Integer cdAutomovel;
    @Column(name = "cd_uf_automovel")
    private Integer cdUfAutomovel;
    @Column(name = "nr_placa_automovel", length = 250)
    private String nrPlacaAutomovel;
    @Column(name = "nr_renavam_automovel", length = 250)
    private String nrRenavamAutomovel;
    @Column(name = "dt_ano_fabricacao_automovel")
    @Temporal(TemporalType.DATE)
    private Date dtAnoFabricacaoAutomovel;
    @Column(name = "dt_ano_modelo_automovel")
    @Temporal(TemporalType.DATE)
    private Date dtAnoModeloAutomovel;
    @Column(name = "nr_codigo_seguranca_crv", length = 250)
    private String nrCodigoSegurancaCrv;
    @Column(name = "nr_crv")
    private Integer nrCrv;
    @Column(name = "dt_emissao_crv")
    @Temporal(TemporalType.DATE)
    private Date dtEmissaoCrv;
    @Column(name = "nr_via_crv", length = 250)
    private String nrViaCrv;
    @Column(name = "dt_venda_automovel")
    @Temporal(TemporalType.DATE)
    private Date dtVendaAutomovel;
    @JoinTable(name = "tb_automovel_lote", catalog = "db_dnaso", schema = "db_leilao", joinColumns = {@JoinColumn(name = "cd_automovel_lote", referencedColumnName = "cd_automovel", nullable = false)}, inverseJoinColumns = {@JoinColumn(name = "cd_lote_leilao", referencedColumnName = "cd_lote_leilao", nullable = false)})
    @ManyToMany(fetch = FetchType.LAZY)
    private Set<TbLoteLeilao> tbLoteLeilaoCollection;
    @JoinColumn(name = "cd_modelo_automovel", referencedColumnName = "cd_modelo_automovel")
    @ManyToOne(fetch = FetchType.LAZY)
    private TbModeloAutomovel cdModeloAutomovel;
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
@Entity
@Table(name = "tb_lote_leilao", catalog = "db_dnaso", schema = "db_leilao")
@NamedQueries({@NamedQuery(name = "TbLoteLeilao.findAll", query = "SELECT t FROM TbLoteLeilao t")})
public class TbLoteLeilao implements Serializable {
    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "cd_lote_leilao", nullable = false)
    private Integer cdLoteLeilao;
    @Basic(optional = false)
    @Column(name = "nm_lote_leilao", nullable = false, length = 250)
    private String nmLoteLeilao;
    @Column(name = "ds_lote_leilao", length = [telefone removido])
    private String dsLoteLeilao;
    @Column(name = "vl_lote", precision = 12, scale = 2)
    private BigDecimal vlLote;
    @Column(name = "ic_lote_finalizado")
    private Boolean icLoteFinalizado;
    @JoinTable(name = "tb_comprador_lote", catalog = "db_dnaso", schema = "db_leilao", joinColumns = {@JoinColumn(name = "cd_lote_leilao", referencedColumnName = "cd_lote_leilao", nullable = false)}, inverseJoinColumns = {@JoinColumn(name = "cd_parte_comprador", referencedColumnName = "cd_parte", nullable = false)})
    @ManyToMany(fetch = FetchType.LAZY)
    private Set<TbParte> tbParteCollection;
    @ManyToMany(mappedBy = "tbLoteLeilaoCollection", fetch = FetchType.LAZY)
    private Set<TbAutomovel> tbAutomovelCollection;
    @JoinColumn(name = "cd_leilao", referencedColumnName = "cd_leilao")
    @ManyToOne(fetch = FetchType.LAZY)
    private TbLeilao cdLeilao;
    @JoinColumn(name = "cd_parte_vendedor", referencedColumnName = "cd_parte")
    @ManyToOne(fetch = FetchType.LAZY)
    private TbParte cdParteVendedor;
alguem me explica como pegar todos os automoveis para um determinado lote?? ja tentei fazer o seguinte:
DetachedCriteria criteria = DetachedCriteria.forClass(TbLoteLeilao.class);
        criteria.createCriteria("TbAutomovel")
                .add(Expression.eq("tbLoteLeilaoCollection", loteLeilao));
       
        return  hibernateTemplate.findByCriteria(criteria);

mas nao consegui.. alguem pode me ajudar??

valeu

Criado 28 de outubro de 2009
Respostas 0
Participantes 1