You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by l1nk <ca...@gmail.com> on 2007/11/07 12:27:02 UTC

Hibernate: one-to-many relation. Getting values

Hi.
Im developing a web application at work using Struts2, Hibernate and Spring.

I have two classes with a parent/child (PCB - BrgpInfo) relation and i make
one JSP page to insert data to populate this 2 classes. The problem is that
i can read all the information but i cant insert data to the Set<BrgpInfo>.

[B]Pcb.java[/B]
[CODE]
import java.io.Serializable;
import java.util.Iterator;
import java.util.Set;

public class Pcb implements Serializable{

	private static final long serialVersionUID = 5925233207935081072L;

	/* Primary Key */
	private int id;
	
	/* Properties */
	private String serialNumber;
	private String origem;

	/* Procedure information */
	private FailInfo failInfo;
	//private ClientInfo clientInfo;
	
	/* Lista de BrgP info */
	private Set<BrgpInfo> brgpInfos;// = new HashSet<BrgpInfo>();
	//private List<BrgpInfo> brgpInfos = new ArrayList<BrgpInfo>();
	
	public Pcb() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	public Pcb(int id){
		this.id = id;
	}

	public Pcb(int id, String serialNumber, String origem, FailInfo failInfo,
Set<BrgpInfo> brgpInfos) {
		super();
		this.id = id;
		this.serialNumber = serialNumber;
		this.origem = origem;
		this.failInfo = failInfo;
		this.brgpInfos = brgpInfos;
	}

	public Set<BrgpInfo> getBrgpInfos() {
		return brgpInfos;
	}

	public void setBrgpInfos(Set<BrgpInfo> brgpInfos) {
		this.brgpInfos = brgpInfos;
	}

	public FailInfo getFailInfo() {
		return failInfo;
	}

	public void setFailInfo(FailInfo failInfo) {
		this.failInfo = failInfo;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getOrigem() {
		return origem;
	}

	public void setOrigem(String origem) {
		this.origem = origem;
	}

	public String getSerialNumber() {
		return serialNumber;
	}

	public void setSerialNumber(String serialNumber) {
		this.serialNumber = serialNumber;
	}
}
[/CODE]

[B]BrgpInfo.java[/B]
[CODE]import java.io.Serializable;

public class BrgpInfo implements Serializable{
	
	private static final long serialVersionUID = -1848147187786536525L;
	private int id;
    private String receptDate;
    private String controlN;
    private String pcbN;
    
    //private int pcbId;
    private Pcb pcb;
    
	public BrgpInfo() {
		super();
		// TODO Auto-generated constructor stub
	}

	public BrgpInfo(int id){
		this.id = id;
	}
	
	/*Constructor necessário para a relação one-to-many*/
	public BrgpInfo(Pcb pcb){
		setPcb(pcb);
	}

	public BrgpInfo(int id, String receptDate, String controlN, String pcbN,
Pcb pcb) {
		super();
		this.id = id;
		this.receptDate = receptDate;
		this.controlN = controlN;
		this.pcbN = pcbN;
		this.pcb = pcb;
	}

	public String getControlN() {
		return controlN;
	}

	public void setControlN(String controlN) {
		this.controlN = controlN;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public Pcb getPcb() {
		return pcb;
	}

	public void setPcb(Pcb pcb) {
		this.pcb = pcb;
	}

	public String getPcbN() {
		return pcbN;
	}

	public void setPcbN(String pcbN) {
		this.pcbN = pcbN;
	}

	public String getReceptDate() {
		return receptDate;
	}

	public void setReceptDate(String receptDate) {
		this.receptDate = receptDate;
	}

	
	
}[/CODE]

[B]Pcb.hbm.xml[/B]
[CODE]
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="com.ht.model.Pcb" table="Pcb">

		<id name="id" type="integer">
			<generator class="native"></generator>
		</id>

		<property name="serialNumber" />
		<property name="origem" />
		
		<set name="brgpInfos" table="BrgpInfo" cascade="all-delete-orphan"
inverse="true" lazy="false">
			<key column="pcb_id" not-null="true"/>
			<one-to-many class="com.ht.model.BrgpInfo"/>
		</set>
		
		<many-to-one name="failInfo" column="failInfo_id" unique="true"
not-null="true"
			 cascade="all" class="com.ht.model.FailInfo" />
	</class>
</hibernate-mapping>
[/CODE]

[B]BrgpInfo.hbm.xml[/B]
[CODE]
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 3/Set/2007 17:09:40 by Hibernate Tools 3.2.0.b9 -->
<hibernate-mapping>
	<class name="com.ht.model.BrgpInfo" table="BrgpInfo" >

		<id name="id" type="integer" column="brgpinfo_id">
			<generator class="native"></generator>
		</id>
		
		<property name="receptDate" />
		
		<property name="controlN" />

		<property name="pcbN" />
		
		<many-to-one name="pcb" class="com.ht.model.Pcb" column="pcb_id"
not-null="true"/>
		

	</class>
</hibernate-mapping>
[/CODE]

My JSP it's this:
[CODE]
<s:form method="post" action="done">
		<!--PCB  -->
		<h4>Serial Number</h4>
		<s:textfield  name="pcb.serialNumber" cssClass="registration_text"/> <br/>
		<h4>Origem</h4>
		<s:textfield  name="pcb.origem" cssClass="registration_text"/> <br/>

                 <!--BRGPINFO DATA -->
                <h4>Recept Date</h4>
		<s:textfield name="pcb.brgpInfos.receptDate"/><br/>
		<h4>Control Number</h4>
		<s:textfield name="pcb.brgpInfos.controlN"/><br/>
		<h4>Pcb Number</h4>
		<s:textfield name="pcb.brgpInfos.pcbN"/><br/>
[/CODE]

To read data from the Set i use the <s:iterator> tag and work just fine.
What i need to do to insert?
-- 
View this message in context: http://www.nabble.com/Hibernate%3A-one-to-many-relation.-Getting-values-tf4764061.html#a13625307
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org