-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Only one object in the Set
PostPosted: Mon Aug 02, 2004 6:14 pm 
Newbie

Joined: Fri Jul 02, 2004 2:38 pm
Posts: 3
Im using Hibernate2 with Postgresql.

my mapping doc
Code:
<hibernate-mapping>
   <class name="SubEspecialidade" table="SubEspecialidade" >
       <id name="idSubEspecialidade" type="int" >
          <generator class="increment" />
       </id>
      <property name="nome" type="string"/>      
      <many-to-one
         name="especialidade"
         class="Especialidade"
         column="idespecialidade"
         not-null="true"
      />       
   </class>

   <class
       name="Especialidade"
       table="Especialidade"
   >
       <id
           name="idEspecialidade"
           type="integer"
           column="idEspecialidade"
       >
           <generator class="increment" />
       </id>
      <property name="nome" type="string"/>
      <property name="qtdRetorno" type="integer"/>
      <property name="qtdDiaControleVaga" type="integer"/>
      
      <set name="subEspecialidades"
          table="subespecialidade"
          cascade="all"
          inverse="true"
          lazy="true"
      >
         <key column="idsubespecialidade" />
         <one-to-many class="SubEspecialidade" />      
      </set>          
   </class>
   
</hibernate-mapping>


The classes are just fine, with getters and setter... that's not the problem. I can easylly insert in the db. When I retrieve an Especialidade and list its subEspecialidades only the first inserted is showed!!!

my classes
[code]

public class Especialidade {
private Integer idEspecialidade;
private String nome;
private int qtdRetorno;
private int qtdDiaControleVaga;
private Set subEspecialidades = new HashSet();

public Especialidade() {
}

public Especialidade(Integer id, String nome, int qtdRet, int qntDCV) {

setIdEspecialidade(id);
setNome(nome);
setQtdRetorno(qtdRet);
setQtdDiaControleVaga(qntDCV);
}

public Integer getIdEspecialidade() {
return idEspecialidade;
}

public String getNome() {
return nome;
}

public int getQtdDiaControleVaga() {
return qtdDiaControleVaga;
}

public int getQtdRetorno() {
return qtdRetorno;
}

public void setIdEspecialidade(Integer i) {
idEspecialidade = i;
}

public void setNome(String string) {
nome = string;
}

public void setQtdDiaControleVaga(int i) {
qtdDiaControleVaga = i;
}

public void setQtdRetorno(int i) {
qtdRetorno = i;
}

public boolean equals(Object obj) {

if (this == obj)
return true;
if (!(obj instanceof Especialidade))
return false;

final Especialidade esp = (Especialidade) obj;

if (esp.getIdEspecialidade() != getIdEspecialidade())
return false;
if (esp.getNome() != getNome())
return false;
if (esp.getQtdDiaControleVaga() != getQtdDiaControleVaga())
return false;
if (esp.getQtdRetorno() != getQtdRetorno())
return false;

return true;
}

public int hashCode() {
return (getNome().hashCode() * 29);
}

public String toString() {
return "{ "
+ getIdEspecialidade()
+ " , "
+ getNome().trim()
+ " , "
+ getQtdRetorno()
+ " , "
+ getQtdDiaControleVaga()
+ " } ";
}

public Set getSubEspecialidades() {
return subEspecialidades;
}

public void setSubEspecialidades(Set set) {
subEspecialidades = set;
}

public void addSubEspecialidade(SubEspecialidade subEsp) {
subEspecialidades.add(subEsp);
}

public void listaSubEspecialidades() {

Iterator it = subEspecialidades.iterator();
SubEspecialidade s;
int i = subEspecialidades.size();
System.out.println("qnt de elementos = " + i);
while (it.hasNext()) {
s = (SubEspecialidade) it.next();
System.out.println(s);
}
}
}
// ============================================

public class SubEspecialidade {
private Integer idSubEspecialidade;
private String nome;
private Especialidade especialidade;

/**
*
*/
public SubEspecialidade() {
}

/**
*
*/
public SubEspecialidade(Integer id, String nome, Especialidade esp) {
idSubEspecialidade = id;
this.nome = nome;
this.especialidade = esp;
}

/**
* @return
*/
public Integer getIdSubEspecialidade() {
return idSubEspecialidade;
}

/**
* @return
*/
public String getNome() {
return nome;
}

/**
* @param i
*/
public void setIdSubEspecialidade(Integer i) {
idSubEspecialidade = i;
}

/**
* @param string
*/
public void setNome(String string) {
nome = string;
}

public Especialidade getEspecialidade() {
return especialidade;
}

public void setEspecialidade(Especialidade especialidade) {
this.especialidade = especialidade;
}

public String toString() {
String out = " { " + getIdSubEspecialidade() + " , " + getNome().trim();

if (getEspecialidade() == null) {
out += " , null ";
} else
out += " , " + getEspecialidade().toString();

out += " } ";
return out;
}

public boolean equals(Object obj) {

if (this == obj) {
return true;
}

if (obj instanceof SubEspecialidade) {
return false;
}
final SubEspecialidade se = (SubEspecialidade) obj;
if (getNome().equals(se.getNome()))
if (getEspecialidade().equals(se.getEspecialidade()))
return true;
return false;
}

/*
* consultar acab para restri


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.