Atributos

3 respostas
O

Boa tarde. Tenho esse relacionamento que esta criando dois campos que nao eram para serem criados.

public class UsuarioVO implements Serializable {

    private Long idUsuarioVO;
    private String codigoDoUsuarioVO;
    private String senhaDoUsuarioVO;
    private byte statusDoUsuarioVO;
    private Collection<MensagemVO> mensagemEnviadaVO;
    private Set<MensagemVO> mensagemRecebidaVO;
   

    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_USUARIO")
    @Column(name="idUsuario", unique=true, nullable=false)
    public Long getIdUsuarioVO() {
        return idUsuarioVO;
    }

   
    public void setIdUsuarioVO(Long idUsuarioVO) {
        this.idUsuarioVO = idUsuarioVO;
    }

    @Column(name="codigoDoUsuario",unique=true,nullable=false, length=20)
    public String getCodigoDoUsuarioVO() {
        return codigoDoUsuarioVO;
    }


   
    public void setCodigoDoUsuarioVO(String codigoDoUsuarioVO) {
        this.codigoDoUsuarioVO = codigoDoUsuarioVO;
    }
 
    @Column(name="senhaDoUsuario", unique=true, nullable=false, length=10)
    public String getSenhaDoUsuarioVO() {
        return senhaDoUsuarioVO;
    }

    public void setSenhaDoUsuarioVO(String senhaDoUsuarioVO) {
        this.senhaDoUsuarioVO = senhaDoUsuarioVO;
    }

   

 
    @Column(name="statusDoUsuario", unique=true, nullable=false)
    public byte getStatusDoUsuarioVO() {
        return statusDoUsuarioVO;
    }

  
    public void setStatusDoUsuarioVO(byte statusDoUsuarioVO) {
        this.statusDoUsuarioVO = statusDoUsuarioVO;
    }


    @OneToMany(mappedBy="destinatarioVO")
    public Collection<MensagemVO> getMensagemEnviadaVO() {
        return mensagemEnviadaVO;
    }


    public void setMensagemEnviadaVO(Set<MensagemVO> mensagemEnviadaVO) {
        this.mensagemEnviadaVO = mensagemEnviadaVO;
    }
   
 
    @OneToMany(mappedBy="remetenteVO")
    public Collection<MensagemVO> getMensagemRecebidaVO() {
        return mensagemRecebidaVO;
    }
   
 
    public void setMensagemRecebidaVO(Set<MensagemVO> mensagemRecebidaVO) {
        this.mensagemRecebidaVO = mensagemRecebidaVO;
    }
}

A classe Mensagem

@Entity
@Table(name="Mensagens")
@SequenceGenerator(name="SEQ_MENSAGEM", sequenceName="SEQ_MENSAGEM")
public class MensagemVO {

   
    private Long idMensagemVO = null;
    private Date dataDeEnvioDaMensagemVO = null;
    private Date dataDeAtivacaoDaMensagemVO = null;
    private String corpoDaMensagemVO = null;
    private String acaoDaMensagemVO = null;
    private UsuarioVO destinatarioVO = null;
    private UsuarioVO remetenteVO = null;

    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_MENSAGEM")
    @Column(name="idMensagem", unique=true, nullable=false)
    public Long getIdMensagemVO() {
        return idMensagemVO;
    }
   

    public void setIdMensagemVO(Long idMensagemVO){
        this.idMensagemVO = idMensagemVO;
    }

   

    @Temporal(TemporalType.DATE)
    @Column(name="dataDePostagem", nullable=false, unique=true)
    public Date getDataDeEnvioDaMensagemVO() {
        return dataDeEnvioDaMensagemVO;
    }

  
    public void setDataDeEnvioDaMensagemVO(Date dataDeEnvioDaMensagemVO) {
        this.dataDeEnvioDaMensagemVO = dataDeEnvioDaMensagemVO;
    }

    @Temporal(TemporalType.DATE)
    @Column(name="dataDeAtivacao", nullable=false,unique=true)
    public Date getDataDeAtivacaoDaMensagemVO() {
        return dataDeAtivacaoDaMensagemVO;
    }

  
    public void setDataDeAtivacaoDaMensagemVO(Date dataDeAtivacaoDaMensagemVO) {
        this.dataDeAtivacaoDaMensagemVO = dataDeAtivacaoDaMensagemVO;
    }

    @Column(name="corpoDaMensagem", unique=true,nullable=false,length=4000)
    public String getCorpoDaMensagemVO() {
        return corpoDaMensagemVO;
    }

    public void setCorpoDaMensagemVO(String corpoDaMensagemVO) {
        this.corpoDaMensagemVO = corpoDaMensagemVO;
    }


    @Column(name="acaoDaMensagem", length=255)
    public String getAcaoDaMensagemVO() {
        return acaoDaMensagemVO;
    }


    public void setAcaoDaMensagemVO(String acaoDaMensagemVO) {
        this.acaoDaMensagemVO = acaoDaMensagemVO;
    }

   
    @ManyToOne(fetch=FetchType.LAZY)
    @Cascade(CascadeType.SAVE_UPDATE)
    @JoinColumn(name="idDestinatario")
    public UsuarioVO getDestinatarioVO() {
        return destinatarioVO;
    }

    public void setDestinatarioVO(UsuarioVO destinatarioVO) {
        this.destinatarioVO = destinatarioVO;
    }



 
    @ManyToOne(fetch=FetchType.LAZY)
    @Cascade(CascadeType.SAVE_UPDATE)
    @JoinColumn(name="idRemetente")
    public UsuarioVO getRemetenteVO() {
        return remetenteVO;
    }


    public void setRemetenteVO(UsuarioVO remetenteVO) {
        this.remetenteVO = remetenteVO;
    }

}

Ele esta dando esse erro:

create table Mensagens (
        idMensagem number(19,0) not null unique,
        dataDePostagem date not null unique,
        dataDeAtivacao date not null unique,
        corpoDaMensagem varchar2(4000) not null unique,
        acaoDaMensagem varchar2(255),
        idRemetente number(19,0),
        idDestinatario number(19,0),
        primary key (idMensagem)
    )

    create table Usuarios (
        idUsuario number(19,0) not null unique,
        codigoDoUsuario varchar2(20) not null unique,
        senhaDoUsuario varchar2(10) not null unique,
        statusDoUsuario number(3,0) not null unique,
        mensagemEnviadaVOEmpty number(1,0) not null,
        mensagemRecebidaVOEmpty number(1,0) not null,
        primary key (idUsuario)
    )

    alter table Mensagens
        add constraint FK191E1FA741F4460E
        foreign key (idRemetente)
        references Usuarios

    alter table Mensagens
        add constraint FK191E1FA75589812
        foreign key (idDestinatario)
        references Usuarios

    create sequence SEQ_MENSAGEM

    create sequence SEQ_USUARIO
Exception in thread "main" java.lang.ExceptionInInitializerError
    at br.com.MGFSaga.ControleDeAcesso.DAO.CreateTableControleAcesso.<clinit>(CreateTableControleAcesso.java:41)
    at br.com.MGFSaga.ControleDeAcesso.DAO.ExecutaTesta.main(ExecutaTesta.java:27)
Caused by: org.hibernate.PropertyNotFoundException: Could not find a setter for property mensagemEnviadaVOEmpty in class br.com.MGFSaga.ControleDeAcesso.VO.UsuarioVO
    at org.hibernate.property.BasicPropertyAccessor.createSetter(BasicPropertyAccessor.java:216)
    at org.hibernate.property.BasicPropertyAccessor.getSetter(BasicPropertyAccessor.java:209)
    at org.hibernate.mapping.Property.getSetter(Property.java:277)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertySetter(PojoEntityTuplizer.java:251)
    at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:126)
    at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:55)
    at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:56)
    at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:269)
    at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:425)
    at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
    at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
    at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1291)
    at br.com.MGFSaga.ControleDeAcesso.DAO.CreateTableControleAcesso.<clinit>(CreateTableControleAcesso.java:38)
    ... 1 more

Ele nao deveria criar esses campos que o hibernate alega que esta faltando metodos setters…
Obrigado…

3 Respostas

ddduran

bom qualquer atributo que você não queria que ele seja persistido é só por

@Transient antes… era isso?

O

ddduram…
Mas o mapeamento one to many que eu tenha na classe UsuarioVO nao era pra criar essas tuplas: mensagemEnviadaVOEmpty mensagemRecebidaVOEmpty …
estou seguindo esse tutorial: http://www.j2eebrasil.com.br/mostrar/91
La ele tem um relacionamento one to many bidirecional e ele nao cria esses campos mapeados…

O

Por favor… Sera que alguem sabe o que pode ser… Eita …
To desesperado…

Valeu

Criado 19 de setembro de 2007
Ultima resposta 19 de set. de 2007
Respostas 3
Participantes 2