Hibernate version: 2.1.7
Mapping documents: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping> <class name="hello.Destino" lazy="true" table="DESTINOS"> <id name="id" column="DESTINO_ID" > <generator class="increment"/> </id> <property name="nome" column="NOME" not-null="true" unique="true"/> <property name="endereco" column="ENDERECO" not-null="true"/> <property name="pais" column="PAIS" not-null="true"/> <property name="telefoneCentral" column="TELEFONECENTRAL" not-null="true"/> <set name="pessoasDestinadas" cascade="all-delete-orphan" inverse="true" lazy="true" > <key column ="DESTINO_ID"/> <one-to-many class="hello.PessoaDestinada"/> </set> <set name="ramais" lazy="true" inverse="true" cascade="all" > <key column="DESTINO_ID"/> <one-to-many class="hello.Ramal"/> </set> <set name="ligacoes" lazy="true" inverse="true" cascade="none"> <key column="DESTINO_ID"/> <one-to-many class="hello.Ligacao"/> </set> </class> </hibernate-mapping>
Code between sessionFactory.openSession() and session.close(): session.save(destino);
Full stack trace of any exception that occurs: Any exceptions occurs
Name and version of the database you are using:Sybase *
The generated SQL (show_sql=true):create table DESTINOS ( DESTINO_ID numeric(19,0) not null, NOME varchar(255) not null unique, ENDERECO varchar(255) not null, PAIS varchar(255) not null, TELEFONECENTRAL varchar(255) not null, primary key (DESTINO_ID) )
Hibernate: insert into DESTINOS (NOME, ENDERECO, PAIS, TELEFONECENTRAL, DESTINO_ID) values (?, ?, ?, ?, ?)
Debug level Hibernate log excerpt:
******************************
Hello all !
I´m new to hibernate and i tried to insert an alternative key on my table DESTINOS.
Hibernate apparently saves it on database , no error is shown.
But it is not saving all fields , just the primary key and the alternative key.
Here goes the code:
Destino destino = new Destino();
destino.setNome("Tramanda Beach");
destino.setPais("Brazil ");
destino.setEndereco("Tramandai ");
destino.setTelefoneCentral("42342");
destino.setRamais(new HashSet());
DestinoDAO dd= new DestinoDAO ();
dd.insertDestino(destino);
In database row i have just these fields persisted
DESTINO_ID NOME ENDERECO PAIS TELEFONECENTRAL
--------------------- ---- -------- ---- ---------------
1 Tramanda Beach
***************
package hello;
import java.io.Serializable;
import java.util.*;
/**
* @author abarbosa
*
* TODO To change the template for this generated type comment go to Window -
* Preferences - Java - Code Style - Code Templates
*/
public class Destino implements Serializable {
/**
* @return Returns the id.
*/
public Long getId() {
return id;
}
/**
* @param id The id to set.
*/
public void setId(Long id) {
this.id = id;
}
private Long id;
private String nome;
private String endereco;
private String pais;
private String telefoneCentral;
private Set pessoasDestinadas = new HashSet();
private Set ramais = new HashSet();
private Set ligacoes = new HashSet();
public Destino() {
}
public Destino(String nome, String endereco, String pais,
String telefoneCentral,Set pessoasDestinadas,Set ramais) {
setNome(nome);
setEndereco(endereco);
setPais(pais);
setTelefoneCentral(telefoneCentral);
setPessoasDestinadas(pessoasDestinadas);
setRamais(ramais);
}
public void setNome(String nome) {
this.nome = nome;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public void setPais(String pais) {
this.pais = pais;
}
public void setTelefoneCentral(String telefoneCentral) {
this.telefoneCentral = telefoneCentral;
}
public void setPessoasDestinadas(Set pessoasDestinadas) {
this.pessoasDestinadas = pessoasDestinadas;
}
public void setRamais(Set ramais) {
this.ramais = ramais;
}
public void addPessoaDestinada(PessoaDestinada pessoaDestinada) {
if (pessoaDestinada == null)
throw new IllegalArgumentException("Can't add a null pessoasDestinada.");
this.getPessoasDestinadas().add(pessoaDestinada);
}
public String getNome() {
return nome;
}
public String getEndereco() {
return endereco;
}
public String getPais() {
return pais;
}
public String getTelefoneCentral() {
return telefoneCentral;
}
public Set getPessoasDestinadas() {
return pessoasDestinadas;
}
public Set getRamais() {
return ramais;
}
/**
* @param ramal
*/
public void addRamal(Ramal ramal) {
ramal.setDestino(this);
this.getRamais().add(ramal);
// TODO Auto-generated method stub
}
public void addLigacao(Ligacao ligacao) {
ligacao.setDestino(this);
this.ligacoes.add(ligacao);
// TODO Auto-generated method stub
}
/**
* @return Returns the ligacoes.
*/
public Set getLigacoes() {
return ligacoes;
}
/**
* @param ligacoes The ligacoes to set.
*/
public void setLigacoes(Set ligacoes) {
this.ligacoes = ligacoes;
}
}
Thanks for help! (sorry by my english)
|