Support Requests item #538800, was opened at 2002-04-03 17:23
Message generated for change (Settings changed) made by stevensa
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=402705&aid=538800&group_id=31602
Category: None
Group: None
>Status: Closed
Resolution: Works For Me
Priority: 5
Submitted By: Nobody/Anonymous (nobody)
Assigned to: Nobody/Anonymous (nobody)
Summary: @weblogic:target-column-map not working
Initial Comment:
Hi,
while the tag
* @weblogic:column-map
* foreign-key-column="STOCK_ID"
* key-column="ID"
works OK,adding the tag
* @weblogic:target-column-map
* foreign-key-column="STOCK_ID"
* key-column="ID"
does not seem to change anything in the produced
weblogic-cmp-rdbms-jar-xml.
I have to add a useless relation side although I need
only a one directional relation.
any ideas?
thanks.
----------------------------------------------------------------------
Comment By: Aslak Helles�y (rinkrank)
Date: 2002-04-09 02:43
Message:
Logged In: YES
user_id=49846
Try this:
* @ejb:relation
* name="StockEntity-itemInfo"
* role-name="PortfolioItem-Stock"
* target-ejb="StockEntity"
* target-multiple="yes"
* target-role-name="Stock-PortfolioItem"
* @weblogic:target-column-map
* foreign-key-column="STOCK_ID"
* key-column="ID"
And see if it helps. The docs for @ejb:relation might be a
bit unclear about this, but they _do_ suggest that you need
to specify target-multiple and target-role-name for
unidirectional relationships.
You didn't tell me what XDoclet version you're using. I
therefore assume that you have tried the latest CVS
version. I strongly encourage you to try out Middlegen
(http://boss.bekk.no/boss/middlegen/). It's well tested
with WLS.
P.S. Next time you attach big stuff, please use the attach
feature at the bottom of the tracker page, and don't post a
bug report unless you're really sure it's a bug. Mailing
list is better for plain support like this ;-) D.S.
/Aslak
----------------------------------------------------------------------
Comment By: Ozgur Tumer (ozgurt)
Date: 2002-04-08 15:11
Message:
Logged In: YES
user_id=509274
The StockEntityBean did not go on properly...
package com.objectlearn.portfoliomanagement.ejbs.stock;
import java.rmi.RemoteException;
import javax.ejb.EJBException;
import javax.ejb.EntityBean;
import javax.ejb.EntityContext;
import javax.ejb.RemoveException;
import
com.objectlearn.portfoliomanagement.ejbs.portfolioitem.Portf
olioItemEntity;
import com.objectlearn.portfoliomanagement.model.Stock;
/**
* @author <a href="mailto:[EMAIL PROTECTED]
esolutions.com">Ozgur Tumer</a>
*
* @ejb:bean
* type="CMP"
* cmp-version="2.x"
* name="StockEntity"
* jndi-name="StockEntityHome"
* local-jndi-name="StockEntityLocalHome"
* view-type="remote"
* primkey-field="id"
*
* @ejb:finder
* signature="java.util.Collection findAll()"
* unchecked="true"
* query="SELECT DISTINCT OBJECT(c) FROM StockEntity c
WHERE c.id IS NOT NULL"
* result-type-mapping="Local"
*
* @ejb:finder
* signature="StockEntity findByAlias(java.lang.String
alias)"
* unchecked="true"
* query="SELECT OBJECT(s) FROM StockEntity AS s WHERE
s.alias = ?1 "
* result-type-mapping="Local"
*
* @ejb:pk
* class="java.lang.Integer"
*
* @ejb:transaction type="Required"
*
* @weblogic:data-source-name PortfolioManagementDataSource
* @weblogic:table-name STOCKS
* @weblogic:persistence
*
*/
public abstract class StockEntityBean implements EntityBean
{
/**
* @ejb:create-method view-type="remote"
*/
public Integer ejbCreate(Stock stock){
setAlias(stock.getAlias());
setName(stock.getName());
setUrl(stock.getUrl());
setIcon(stock.getIcon());
return null;
}
public void ejbPostCreate(Stock stock){
}
/**
* @ejb:interface-method view-type="remote"
*/
public void setStock(Stock stock){
setAlias(stock.getAlias());
setName(stock.getName());
setUrl(stock.getUrl());
setIcon(stock.getIcon());
}
/**
* @ejb:interface-method view-type="remote"
*/
public Stock getStock(){
Stock stock = new Stock(getAlias(), getName
(), getUrl(), getIcon());
return stock;
}
/**
* @param id id of this StockEntity
*/
public abstract void setId(Integer id);
/**
* @return id of this StockEntity
*
* @ejb:persistent-field
* @ejb:pk-field
*
* @weblogic:dbms-column ID
*/
public abstract Integer getId();
/**
* @param name name of this StockEntity
*
* @ejb:interface-method view-type="remote"
*/
public abstract void setName(java.lang.String name);
/**
* @return name of this StockEntity
*
* @ejb:interface-method view-type="remote"
* @ejb:persistent-field
*
* @weblogic:dbms-column NAME
*/
public abstract java.lang.String getName();
/**
* @param alias alias of this StockEntity
*
* @ejb:interface-method view-type="remote"
*/
public abstract void setAlias(java.lang.String alias);
/**
* @return alias of this StockEntity
*
* @ejb:interface-method view-type="remote"
* @ejb:persistent-field
*
* @weblogic:dbms-column ALIAS
*/
public abstract java.lang.String getAlias();
/**
* @param url url of this StockEntity
*
* @ejb:interface-method view-type="remote"
*/
public abstract void setUrl(java.lang.String url);
/**
* @return url of this StockEntity
*
* @ejb:interface-method view-type="remote"
* @ejb:persistent-field
*
* @weblogic:dbms-column URL
*/
public abstract java.lang.String getUrl();
/**
* @param icon icon of this StockEntity
*
* @ejb:interface-method view-type="remote"
*/
public abstract void setIcon(java.lang.String icon);
/**
* @return icon of this StockEntity
*
* @ejb:interface-method view-type="remote"
* @ejb:persistent-field
*
* @weblogic:dbms-column ICON
*/
public abstract java.lang.String getIcon();
}
the DDL;
CREATE TABLE "EUSER"."CUSTOMER"("ID" NUMBER(19)
NOT
NULL, "NAME" VARCHAR2(20) NOT NULL, "ALIAS" VARCHAR2(20)
NOT NULL TABLESPACE "USERS"
CREATE UNIQUE INDEX "EUSER"."IND"
ON "EUSER"."CUSTOMER"("ALIAS")
CREATE TABLE "EUSER"."PORTFOLIO_ITEMS"("ID"
NUMBER(19) NOT
NULL, "CUSTOMER_ID" NUMBER(19) NOT NULL, "STOCK_ID" NUMBER
(9) NOT NULL, "BUY_VALUE" NUMBER(20, 2) NOT
NULL, "BUY_DATE" DATE NOT NULL, "QUANTITY" NUMBER(8) NOT
NULL)
CREATE TABLE "EUSER"."STOCKS"("ALIAS" VARCHAR2(5)
NOT
NULL, "NAME" VARCHAR2(30) NOT NULL, "ID" NUMBER(9) NOT
NULL, "ICON" VARCHAR2(10) NOT NULL, "URL" VARCHAR2(30) NOT
NULL)
----------------------------------------------------------------------
Comment By: Ozgur Tumer (ozgurt)
Date: 2002-04-08 15:05
Message:
Logged In: YES
user_id=509274
The whole code:
package
com.objectlearn.portfoliomanagement.ejbs.portfolioitem;
import java.rmi.RemoteException;
import java.sql.Date;
import javax.ejb.*;
import javax.naming.*;
import com.objectlearn.portfoliomanagement.ejbs.stock.*;
import com.objectlearn.portfoliomanagement.model.*;
/**
* @author <a href="mailto:[EMAIL PROTECTED]
esolutions.com">Ozgur Tumer</a>
*
* @ejb:bean
* type="CMP"
* cmp-version="2.x"
* name="PortfolioItemEntity"
* jndi-name="PortfolioItemEntityHome"
* local-jndi-name="PortfolioItemEntityHome"
* view-type="remote"
* primkey-field="id"
*
* @ejb:transaction type="Required"
*
* @ejb:finder
* signature="java.util.Collection findAll()"
* unchecked="true"
* query="SELECT DISTINCT OBJECT(p) FROM
PortfolioItemEntity p WHERE p.id IS NOT NULL"
* result-type-mapping="Local"
* @ejb:pk
* class="java.lang.Long"
*
* @ejb:ejb-ref
* ejb-name="StockEntity"
*
* @weblogic:data-source-name PortfolioManagementDataSource
* @weblogic:table-name PORTFOLIO_ITEMS
* @weblogic:persistence
*
*/
public abstract class PortfolioItemEntityBean implements
EntityBean {
/**
* @ejb:create-method view-type="home"
*/
public Long ejbCreate(PortfolioItem item) {
setDate(new Date(item.getQuote().getDate
().getTime()));
setQuantity(item.getQuantity());
setValue(item.getQuote().getValue());
return null;
}
public void ejbPostCreate(PortfolioItem item) {
try {
Stock stock = item.getQuote
().getStock();
Context jndiContext = new
InitialContext();
StockEntityHome stockEntityHome =
(StockEntityHome) jndiContext.lookup("ejb/StockEntity");
StockEntity stockEntity =
stockEntityHome.findByAlias(stock.getAlias());
setStockEntity(stockEntity);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @ejb:interface-method view-type="remote"
*/
public PortfolioItem getPortfolioItem() throws
RemoteException {
Stock stock = getStockEntity().getStock();
Quote quote = new Quote(stock, getValue());
PortfolioItem item = new PortfolioItem
(quote, getQuantity());
return item;
}
/**
* @ejb:interface-method view-type="remote"
*/
public void setPortfolioItem(PortfolioItem item)
throws RemoteException {
setDate(new Date(item.getQuote().getDate
().getTime()));
setQuantity(item.getQuantity());
setValue(item.getQuote().getValue());
try {
Stock stock = item.getQuote
().getStock();
Context jndiContext = new
InitialContext();
StockEntityHome stockEntityHome =
(StockEntityHome) jndiContext.lookup("ejb/StockEntity");
StockEntity stockEntity =
stockEntityHome.findByAlias(stock.getAlias());
setStockEntity(stockEntity);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param id id of this portfolio
*/
public abstract void setId(Long id);
/**
* @return id of this portfolio
*
* @ejb:persistent-field
* @ejb:pk-field
*
* @weblogic:dbms-column ID
*/
public abstract Long getId();
/**
* @param stockId id of this portfolio
*/
public abstract void setStockId(Integer id);
/**
* @return stockId of this portfolio
*
* @ejb:persistent-field
* @ejb:pk-field
*
* @weblogic:dbms-column STOCK_ID
*
*/
public abstract Integer getStockId();
/**
* @param customer_id id of this portfolio
*/
public abstract void setCustomerId(Long id);
/**
* @return id of this portfolio
*
* @ejb:persistent-field
*
* @weblogic:dbms-column CUSTOMER_ID
*/
public abstract Long getCustomerId();
/**
* @param StockEntity StockEntity of this item
*
* @ejb:interface-method view-type="remote"
*/
public abstract void setStockEntity
(com.objectlearn.portfoliomanagement.ejbs.stock.StockEntity
stockEntity);
/**
* @return StockEntity StockEntity of this item
*
* @ejb:interface-method view-type="remote"
* @ejb:relation
* name="StockEntity-itemInfo"
* role-name="PortfolioItem-Stock"
* target-ejb="StockEntity"
* @weblogic:target-column-map
* foreign-key-column="STOCK_ID"
* key-column="ID"
*/
public abstract
com.objectlearn.portfoliomanagement.ejbs.stock.StockEntity
getStockEntity();
/**
* @param quantity quantity of the item
*
* @ejb:interface-method view-type="remote"
*/
public abstract void setQuantity(int quantity);
/**
* @return quantity of the item
*
* @ejb:interface-method view-type="remote"
* @ejb:persistent-field
*
* @weblogic:dbms-column QUANTITY
*/
public abstract int getQuantity();
/**
* @param date date bought of the item
*
* @ejb:interface-method view-type="remote"
*/
public abstract void setDate(java.sql.Date date);
/**
* @return date bought of the item
*
* @ejb:interface-method view-type="remote"
* @ejb:persistent-field
*
* @weblogic:dbms-column BUY_DATE
*/
public abstract java.sql.Date getDate();
/**
* @param value value bought of the item
*
* @ejb:interface-method view-type="remote"
*/
public abstract void setValue(double value);
/**
* @return value bought of the item
*
* @ejb:interface-method view-type="remote"
* @ejb:persistent-field
*
* @weblogic:dbms-column BUY_VALUE
*/
public abstract double getValue();
}
package com.objectlearn.portfoliomanagement.ejbs.stock;
import java.rmi.RemoteException;
import javax.ejb.EJBException;
import javax.ejb.EntityBean;
import javax.ejb.EntityContext;
import javax.ejb.RemoveException;
import
com.objectlearn.portfoliomanagement.ejbs.portfolioitem.Portf
olioItemEntity;
import com.objectlearn.portfoliomanagement.model.Stock%
----------------------------------------------------------------------
Comment By: Nobody/Anonymous (nobody)
Date: 2002-04-08 14:49
Message:
Logged In: NO
Hi,
What I am trying to do is a single sided 1 to many relation-
ship. Which is
1 PortfolioItemEntity - > has 1 StockItemEntity
Where ofcourse 1 StrockEntity can belong to many
PortfolioItemEntity but I am not interested with that side
of the relation.
So What I do is I define a getter and a setter in the
PortfolioItemEntity:
/**
* @param StockEntity StockEntity of this item
*
* @ejb:interface-method view-type="remote"
*/
public abstract void setStockEntity
(com.objectlearn.portfoliomanagement.ejbs.stock.StockEntity
stockEntity);
/**
* @return StockEntity StockEntity of this item
*
* @ejb:interface-method view-type="remote"
* @ejb:relation
* name="StockEntity-itemInfo"
* role-name="PortfolioItem-Stock"
* target-ejb="StockEntity"
* @weblogic:target-column-map
* foreign-key-column="STOCK_ID"
* key-column="ID"
*/
public abstract
com.objectlearn.portfoliomanagement.ejbs.stock.StockEntity
getStockEntity();
And that is all I want to have.
the DDL is like:
CREATE TABLE "EUSER"."PORTFOLIO_ITEMS"("ID"
NUMBER(19) NOT
NULL, "CUSTOMER_ID" NUMBER(19) NOT NULL, "STOCK_ID" NUMBER
(9) NOT NULL, "BUY_VALUE" NUMBER(20, 2) NOT
NULL, "BUY_DATE" DATE NOT NULL, "QUANTITY" NUMBER(8) NOT
NULL)
CREATE TABLE "EUSER"."STOCKS"("ALIAS" VARCHAR2(5)
NOT
NULL, "NAME" VARCHAR2(30) NOT NULL, "ID" NUMBER(9) NOT
NULL, "ICON" VARCHAR2(10) NOT NULL, "URL" VARCHAR2(30) NOT
NULL)
where PORTFOLIO_ITEMS table has an STOCK_ID which should
match the ID in the STOCKS table.
The definition @weblogic:target-column-map does not
produce any code in the
I will try to send the whole code as well.
By the way sorry for the late reply, I was giving a course
and in fact did not expect you guys to be this prompt.
thanks.
----------------------------------------------------------------------
Comment By: Aslak Helles�y (rinkrank)
Date: 2002-04-04 00:34
Message:
Logged In: YES
user_id=49846
Can you post the source of the two beans that participate
in the relation?
Please include the ddl for the involved tables too.
It's not clear to me what cardinality and directionality
you're trying to achieve for your relation.
Aslak
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=402705&aid=538800&group_id=31602
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel