[jboss-user] [EJB 3.0] - New to EJB3 - OnetoOne not creating correct tables!!

hanland do-not-reply at jboss.com
Tue Sep 5 12:19:59 EDT 2006


Hi,

I am using postgres JDBC driver: PostgreSQL Native Driver, version: PostgreSQL 8.1devel JDBC3 with SSL (build 400) and JBoss4.0.4GA.

Working through the Mastering EJB3 book from Wiley I came to Java persistence and the first example @Onetoone relationships. having copied the example from the book I get two tables auto generated on deployment but instead of a foriegn key mapping I get the second entity "shipment" embedded in the first as a bytea. The tables generated and the POJOs entities are given below.

When persisting the first entity I indeed get the second entities data embedded in the first and the second entity table is empty!!

It must be something pretty simple!

CREATE TABLE order1to1
  | (
  |   id int4 NOT NULL,
  |   ordername varchar(255),
  |   shipment bytea,
  |   CONSTRAINT order1to1_pkey PRIMARY KEY (id)
  | ) 
  | 
  | CREATE TABLE shipment1to1
  | (
  |   id int4 NOT NULL,
  |   city varchar(255),
  |   zipcode varchar(255),
  |   CONSTRAINT shipment1to1_pkey PRIMARY KEY (id)
  | ) 
  | 
the java is as follows ..

package uk.hsoft;
  | 
  | import java.io.Serializable;
  | 
  | import javax.persistence.CascadeType;
  | import javax.persistence.Entity;
  | import javax.persistence.Id;
  | import javax.persistence.OneToOne;
  | 
  | @Entity(name = "Order1to1")
  | public class OneToOneUni implements Serializable {
  | 
  | 	/**
  | 	 * 
  | 	 */
  | 	private static final long serialVersionUID = -8964029485294348182L;
  | 
  | 	@Id
  | 	private int id;
  | 
  | 	private String orderName;
  | 
  | 	private Shipment shipment;
  | 
  | 	public OneToOneUni() {
  | 		super();
  | 		id = (int) System.nanoTime();
  | 	}
  | 
  | 	public String getOrderName() {
  | 		return orderName;
  | 	}
  | 
  | 	public void setOrderName(String orderName) {
  | 		this.orderName = orderName;
  | 	}
  | 
  | 	@OneToOne(cascade = { CascadeType.PERSIST })
  | 	public Shipment getShipment() {
  | 		return shipment;
  | 	}
  | 
  | 	public void setShipment(Shipment shipment) {
  | 		this.shipment = shipment;
  | 	}
  | 
  | 	public int getId() {
  | 		return id;
  | 	}
  | }


  | package uk.hsoft;
  | 
  | import java.io.Serializable;
  | 
  | import javax.persistence.Entity;
  | import javax.persistence.Id;
  | 
  | @Entity(name="Shipment1to1")
  | 
  | public class Shipment implements Serializable {
  | 	
  | 	@Id
  | 	private int id;
  | 	private String city;
  | 	private String zipCode;
  | 
  | 	public Shipment() {
  | 		super();
  | 		id = (int)System.nanoTime();
  | 	}
  | 
  | 	/**
  | 	 * 
  | 	 */
  | 	private static final long serialVersionUID = -2447771500427072057L;
  | 
  | 	public int getId() {
  | 		return id;
  | 	}
  | 
  | 	public String getZipCode() {
  | 		return zipCode;
  | 	}
  | 
  | 	public void setZipCode(String zipCode) {
  | 		this.zipCode = zipCode;
  | 	}
  | 
  | 	public void setCity(String city) {
  | 		this.city = city;
  | 	}
  | }
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3969524#3969524

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3969524



More information about the jboss-user mailing list