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.  [ 2 posts ] 
Author Message
 Post subject: Getting relationship problem between classes
PostPosted: Wed Mar 08, 2006 7:44 am 
Beginner
Beginner

Joined: Fri Dec 23, 2005 3:26 am
Posts: 21
Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp

Hibernate version:
Using with spring 1.2.2


Mapping documents:

<class name="org.springframework.samples.jpetstore.domain.Order" table="orders" lazy="false" >
<id name="orderId" type="integer" unsaved-value="null" >
<column name="orderid" sql-type="integer" not-null="true"/>
<generator class="assigned"/>
</id>

<property name="username" column="userid"/>
<property name="orderDate" column="orderdate"/>

<list name="lineItems" inverse="true" lazy="true">
<key>
<column name="orderid" />
</key>
<list-index column="linenum"/>
<one-to-many class="org.springframework.samples.jpetstore.domain.LineItem" />
</list>

</class>

<class name="org.springframework.samples.jpetstore.domain.OrderStatus" table="orderstatus" lazy="false">

<composite-id>
<key-many-to-one name="Order" class="org.springframework.samples.jpetstore.domain.Order" column="orderid" />
<key-property name="lineNumber" column="linenum"/>
<!-- <key-many-to-one name="lineNumber" class="org.springframework.samples.jpetstore.domain.LineItem" column="linenum" />-->
</composite-id>
<property name="status" column="status"/>

</class>

<class name="org.springframework.samples.jpetstore.domain.LineItem" table="lineitem" lazy="false">

<composite-id>
<key-property name="orderId" column="orderid"/>
<key-property name="lineNumber" column="linenum"/>
</composite-id>
<many-to-one name="item" class="org.springframework.samples.jpetstore.domain.Item" >
<column name="itemid" />
</many-to-one>

<property name="quantity" column="quantity"/>
<property name="unitPrice" column="unitprice" not-null="true"/>
</class>





Code between sessionFactory.openSession() and session.close():
Using Spring


Full stack trace of any exception that occurs:
Not getting error


Name and version of the database you are using:
mysql 4.0


The generated SQL (show_sql=true):
insert into orders (userid, orderdate, shipaddr1, shipaddr2, shipcity, shipstate, shipzip, shipcountry, billaddr1, billaddr2, billcity, billstate, billzip, billcountry, courier, totalPrice, billtofirstname, billtolastname, shiptofirstname, shiptolastname, creditcard, exprdate, cardtype, locale, orderid) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Debug level Hibernate log excerpt:



my OrderStatus.java is as follows--
package org.springframework.samples.jpetstore.domain;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class OrderStatus implements Serializable {



/* Private Fields */

private int orderId;
private int lineNumber;
private Date orderDate;
private String status;
private Order order;

protected final Log logger=LogFactory.getLog(getClass());


public OrderStatus()
{

}


/* JavaBeans Properties */

public int getOrderId() {
logger.info("In OrderStatus.getOrderId:::: "+orderId);
return orderId;
}

public void setOrderId(int orderId) {
logger.info("In OrderStatus.setOrderId:::: "+orderId);
this.orderId = orderId;
}

public Date getOrderDate() {
logger.info("In OrderStatus.getOrderDate:::: "+orderDate);
return orderDate;
}


public void setOrderDate(Date orderDate) {
logger.info("In OrderStatus.setOrderDate:::: "+orderDate);
this.orderDate = orderDate;
}

public String getStatus() {
logger.info("In OrderStatus.getStatus:::: "+status);
return status;
}
public void setStatus(String status) {
logger.info("In OrderStatus.setStatus:::: "+status);
this.status = status;
}

public int getLineNumber() {
logger.info("In LineItem.getLineNumber:::: "+lineNumber);
return lineNumber;
}

public void setLineNumber(int lineNumber) {
logger.info("In LineItem.setLineNumber:::: "+lineNumber);
this.lineNumber = lineNumber;
}

public Order getOrder() {
logger.info("In Item.getOrder::::this.order=== "+order);
return order;
}

public void setOrder(Order order) {
logger.info("In Item.setOrder:::: "+order);
this.order = order;
}

}


I want that whenever the order table is updated the orderstatus table should also be updated.

So can anybody help me out what should be the relationship between the orderstatus,order & lineitem

Regards,
Avinash

_________________
avinashb@cybage.com


Top
 Profile  
 
 Post subject:
PostPosted: Wed Mar 08, 2006 8:26 am 
Beginner
Beginner

Joined: Fri Dec 23, 2005 3:26 am
Posts: 21
My Order.java is as follows

package org.springframework.samples.jpetstore.domain;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class Order implements Serializable {



/* Private Fields */

private int orderId;
private String username;
private Date orderDate;

private String locale;
private String status;
private List lineItems = new ArrayList();
protected final Log logger=LogFactory.getLog(getClass());


public Order()
{

}


/* JavaBeans Properties */


public int getOrderId() {
logger.info("In Order.getOrderId:::: "+orderId);
return orderId;
}
public void setOrderId(int orderId) {
logger.info("In Order.setOrderId:::: "+orderId);
this.orderId = orderId;
}

public String getUsername() {
logger.info("In Order.getUsername:::: "+username);
return username;
}
public void setUsername(String username) {
logger.info("In Order.setUsername:::: "+username);
this.username = username;
}

public Date getOrderDate() {
logger.info("In Order.getOrderDate:::: "+orderDate);
return orderDate;
}
public void setOrderDate(Date orderDate) {
logger.info("In Order.setOrderDate:::: "+orderDate);
this.orderDate = orderDate;
}






public String getLocale() {
logger.info("In Order.getLocale:::: "+locale);
return locale;
}
public void setLocale(String locale) {
logger.info("In Order.setLocale:::: "+locale);
this.locale = locale;
}

public String getStatus() {
logger.info("In Order.getStatus:::: "+status);
return status;
}
public void setStatus(String status) {
logger.info("In Order.setStatus:::: "+status);
this.status = status;
}

public void setLineItems(List lineItems) {
logger.info("In Order.setLineItems:::: "+lineItems);
this.lineItems = lineItems;
}
public List getLineItems() {
logger.info("In Order.getLineItems:::: "+lineItems);
return lineItems;
}

/* Public Methods */

public void initOrder(Account account, Cart cart) {
logger.info("In Order.initOrder:::: ");
username = account.getUsername();
orderDate = new Date();

shipToFirstName = account.getFirstName();
shipToLastName = account.getLastName();
shipAddress1 = account.getAddress1();
shipAddress2 = account.getAddress2();
shipCity = account.getCity();
shipState = account.getState();
shipZip = account.getZip();
shipCountry = account.getCountry();

billToFirstName = account.getFirstName();
billToLastName = account.getLastName();
billAddress1 = account.getAddress1();
billAddress2 = account.getAddress2();
billCity = account.getCity();
billState = account.getState();
billZip = account.getZip();
billCountry = account.getCountry();

totalPrice = cart.getSubTotal();

creditCard = "999 9999 9999 9999";
expiryDate = "12/03";
cardType = "Visa";
courier = "UPS";
locale = "CA";
status = "P";

Iterator i = cart.getAllCartItems();
while (i.hasNext()) {
CartItem cartItem = (CartItem) i.next();
addLineItem(cartItem);
}
}

public void addLineItem(CartItem cartItem) {
logger.info("In Order.addLineItem:::: ");
LineItem lineItem = new LineItem(lineItems.size() + 1, cartItem);
addLineItem(lineItem);
}

public void addLineItem(LineItem lineItem) {
logger.info("In Order.addLineItem:::: ");
lineItems.add(lineItem);
}


}


My LineItem.java is as follows

package org.springframework.samples.jpetstore.domain;

import java.io.Serializable;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class LineItem implements Serializable {

/* Private Fields */

private int orderId;
private int lineNumber;
private int quantity;
private String itemId;
private double unitPrice;
private Item item;
protected final Log logger=LogFactory.getLog(getClass());

/* Constructors */

public LineItem() {
}

public LineItem(int lineNumber, CartItem cartItem) {
this.lineNumber = lineNumber;
this.quantity = cartItem.getQuantity();
this.itemId = cartItem.getItem().getItemId();
this.unitPrice = cartItem.getItem().getListPrice();
this.item = cartItem.getItem();
}

/* JavaBeans Properties */

public int getOrderId() {
logger.info("In LineItem.getOrderId:::: ");
return orderId;
}
public void setOrderId(int orderId) {
logger.info("In LineItem.setOrderId:::: ");
this.orderId = orderId;
}

public int getLineNumber() {
logger.info("In LineItem.getLineNumber:::: "+lineNumber);
return lineNumber;
}
public void setLineNumber(int lineNumber) {
logger.info("In LineItem.setLineNumber:::: "+lineNumber);
this.lineNumber = lineNumber;
}

public String getItemId() {
logger.info("In LineItem.getItemId:::: "+itemId);
return itemId;
}
public void setItemId(String itemId) {
logger.info("In LineItem.setItemId:::: "+itemId);
this.itemId = itemId;
}

public double getUnitPrice() {
logger.info("In LineItem.getUnitPrice:::: "+unitPrice);
return unitPrice;
}
public void setUnitPrice(double unitprice) {
logger.info("In LineItem.setUnitPrice:::: "+unitPrice);
this.unitPrice = unitprice;
}

public Item getItem() {
logger.info("In LineItem.getItem:::: ");
return item;
}
public void setItem(Item item) {
logger.info("In LineItem.setItem:::: ");
this.item = item;
}

public int getQuantity() {
logger.info("In LineItem.getQuantity:::: "+quantity);
return quantity;
}
public void setQuantity(int quantity) {
logger.info("In LineItem.setQuantity:::: "+quantity);
this.quantity = quantity;
}

public double getTotalPrice() {
logger.info("In LineItem.getTotalPrice:::: ");
return this.unitPrice * this.quantity;
}

}

_________________
avinashb@cybage.com


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

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.