Dúvida mapeamento Hibernate

3 respostas
vivi_grieco

Olá,
na minha aplicação eu tenho as seguintes classes:

public class NFeVO {
	private InfNFeVO infNFe;
	public InfNFeVO getInfNFe() {
		return infNFe;
	}
	public void setInfNFe(InfNFeVO infNFe) {
		this.infNFe = infNFe;
	}
...
}


public class InfNFeVO {
	protected IdeVO ide;
        public IdeVO getIde() {
		return ide;
	}
	public void setIde(IdeVO ide) {
		this.ide = ide;
	}
...
}

public class IdeVO {
	protected int cUF;
	protected int cNF;
	protected String natOp;
	public int getCUF() {
		return cUF;
	}
	public void setCUF(int cuf) {
		cUF = cuf;
	}
	public int getCNF() {
		return cNF;
	}
	public void setCNF(int cnf) {
		cNF = cnf;
	}
	public String getNatOp() {
		return natOp;
	}
	public void setNatOp(String natOp) {
		this.natOp = natOp;
	}
}

O que eu preciso fazer é criar uma tabela chamada NFE, onde nela contenha como coluna os atributos da classe IdeVO (e esta classe IdeVO não virará tabela própria, apenas os atributos dela q têm q virar colunas na tabela NFE).
Como eu posso fazer isso?? (usando XDoclet).

3 Respostas

alberto_ribeiro

não sei se vai te ajudar muito mais usa @hibernate.compenent na sua classe NFeVO… e na sua classe IdeVO você mapeia apenas os atributos…

pra que vc usa essa classe InfNFeVO ?

vc poderia criar apenas as seguintes classes NFeVO e IdeVO…

o component é usado qdo vc tem uma classe que nao tem uma tabela…

qq coisa post ai as duvidas…

alberto_ribeiro

olha um exemplo…

/**
*
*

  • @hibernate.class
  • table="T_CUSTOMER"
    
*/

public class Customer{

private Address    _address = new Address(  );

private String     _telephone = “”;
/**
 * @return Address
 *
 * @hibernate.component class="Address"
 */
public Address getAddress(  )
{
    return _address;
}

/**
 * @return String
 *
 * @hibernate.id
 *        generator-class="assigned"
 *         length="10"
 */
public String getUserId(  )
{
    return ( _account != null )
           ? _account.getUserId(  )
           : "";
}

/**
 * Sets the address.
 * @param address The address to set
 */
public void setAddress( Address address )
{
    _address = address;
}


/**
 * Sets the userId.
 * @param userId The userId to set
 */
public void setUserId( String userId )
{
    _account.setUserId( userId );
}
/**

*@hibernate.property length=3*

*/

public String getTelephone(){

return _telephone ;

}
/**
 * Sets the telephone.
 * @param telephone The telephone to set
 */
public void setTelephone( String telephone )
{
    _telephone = telephone;
}

}


A classe do component…

public class Address{

private String _city = “”;

private String _country = “”;
/**
 * @return String
 *
 * @hibernate.property
 *         length="25"
 */
public String getCity(  )
{
    return _city;
}

/**
 * @return String
 *
 * @hibernate.property
 *         length="3"
 */
public String getCountry(  )
{
    return _country;
}

/**
 * Sets the city.
 * @param city The city to set
 */
public void setCity( String city )
{
    _city = city;
}

/**
 * Sets the country.
 * @param country The country to set
 */
public void setCountry( String country )
{
    _country = country;
}

}

OBS: peguei da net este exemplo, não testei mais isso te dará uma ideia do que fazer…

vivi_grieco

valeu Alberto, era esse component mesmo.
só respondendo… eu coloquei aqui soh uma parte das classes, essa InfNFeVO possui outros atributos além do q eu coloquei aí, por isso preciso dela :slight_smile:
obrigada de novo :wink:

Criado 29 de novembro de 2006
Ultima resposta 29 de nov. de 2006
Respostas 3
Participantes 2