Mapeamento de relacionamentos do hibernate

2 respostas
peron

Pessoal,
Estou tentando aprender a usar o hibernate, mas estou apanhando na questão de relacionamentos.

Tenho 2 Classes:

PontoAcao:

class PontoAcao {
    private Integer id;

    private String descricao;

    //getters e setters
}

PontoRegistro

class PontoRegistro{
    private Integer id;

    private Date data;

    private PontoAcao acaoentrada;
    
    private Date horaentrada;

    private PontoAcao acaosaida;

    private Date horasaida;

    //getters e setters
}

Bom, a duvida é simples, como mapear o hibernate do banco de dados para aceitar essa configuracao, sendo que pode ou nao haver uma acaosaida …

vou colar o que já fiz pra vocês olharem:

PontoAcao.hbm.xml

<hibernate-mapping package="pro.peron.ponto.model">
	<class name="PontoAcao">
		<id name="id">
			<generator class="native" />
		</id>
		<property name="descricao" />		
	</class>
</hibernate-mapping>

PontoRegistro.hbm.xml

<hibernate-mapping package="pro.peron.ponto.model">
	<class name="PontoRegistro" table="ponto_registros">
		<id name="id">
			<generator class="native" />
		</id>
		<property name="horaentrada" type="time" />		
		
		<property name="horaentrada" type="time" />		
		
		<!-- aqui nao sei o que fazer para carregar um objeto PontoAcao, ou referenciar null se o campo for nulo -->
		
	</class>
</hibernate-mapping>

meu ddl:

CREATE TABLE IF NOT EXISTS ponto_acoes (
  id int(11) unsigned NOT NULL auto_increment,
  descricao varchar(255) ,
  chave varchar(20) ,
  correspondente int(11) unsigned ,
  PRIMARY KEY (id),
  UNIQUE KEY codigo (id)
);

CREATE TABLE IF NOT EXISTS ponto_registros (
  id int(11) unsigned NOT NULL auto_increment,
  usuario int(11) ,
  data date ,
  acaoentrada int(11) ,
  entrada time ,
  acaosaida int(11) ,
  saida time ,
  manual tinyint(1) unsigned NOT NULL DEFAULT '0' ,
  observacao varchar(255) ,
  PRIMARY KEY (id),
  UNIQUE KEY codigo (id)
);

CREATE TABLE IF NOT EXISTS ponto_usuarios (
  id int(11) unsigned NOT NULL auto_increment,
  nome varchar(255),
  login varchar(20) ,
  senha varchar(32) ,
  ativo tinyint(1) unsigned NOT NULL DEFAULT '1' ,
  PRIMARY KEY (id),
  UNIQUE KEY codigo (id),
  UNIQUE KEY ds_login (login)
);

Grato desde já pela ajuda de todos!

sds

2 Respostas

peron

nenhuma dica?

desculpe a insistencia :oops:

sds

passos

&lt;many-to-one name="acaoentrada" class="...........PontoAcao" column="coluna_no_banco" /&gt;

Criado 12 de julho de 2006
Ultima resposta 18 de jul. de 2006
Respostas 2
Participantes 2