ricardolecheta 9 de mar. de 2004
& lt ;? xml version = & quot ; 1.0 & quot ;? & gt ;
& lt ;! DOCTYPE hibernate - mapping PUBLIC & quot ; - //Hibernate/Hibernate Mapping DTD 2.0//EN"
& quot ; http & # 58 ; //hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
& lt ; hibernate - mapping & gt ;
& lt ; class name = & quot ; vo . PessoaVO & quot ; table = & quot ; Pessoa & quot ; discriminator - value = & quot ; P & quot ; & gt ;
& lt ; id name = & quot ; id & quot ; column = & quot ; id & quot ; type = & quot ; long & quot ; & gt ;
& lt ; generator class = & quot ; sequence & quot ; /& gt ;
& lt ; / id & gt ;
& lt ; discriminator column = & quot ; subclass & quot ; type = & quot ; character & quot ; /& gt ;
& lt ; property name = & quot ; name1 & quot ; type = & quot ; string & quot ; /& gt ;
& lt ; subclass name = & quot ; vo . PessoaFisicaVO & quot ; discriminator - value = & quot ; F & quot ; & gt ;
& lt ; property name = & quot ; name2 & quot ; type = & quot ; string & quot ; /& gt ;
& lt ; / subclass & gt ;
& lt ; / class & gt ;
& lt ; / hibernate - mapping & gt ;
ricardolecheta 9 de mar. de 2004
vc tambem pode usar assim: A diferença é que deste modo terá mais uma tabela.
& lt ; joined - subclass name = "vo.PessoaFisicaVO" table = "PESSOA_JURIDICA" & gt ;
& lt ; key column = "PESSOA" /& gt ;
& lt ; property name = "name2" type = "string" /& gt ;
& lt ; / joined - subclass & gt ;
No post anterior a persistência será feita na mesma tabela, para isso existe o “discriminator-value”, que indica ao Hibernate qual é o objeto, Pessoa ou PessoaJuridica.
<discriminator column="subclass" type="character"/>
ricardolecheta 9 de mar. de 2004
e em XDoclet:
/**
* @hibernate.class table="Pessoa" discriminator-value="P"
*
*/
public class PessoaVO implements Serializable & # 123 ;
/**
* @ hibernate . subclass discriminator - value =& quot ; F & quot ;
*
* */
public class PessoaFisicaVO extends PessoaVO implements Serializable & #123;
Gilmar_Rodrigues 10 de mar. de 2004
Opa, Valeu ricardo, consegui fazer o q eu queria.