You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "George Hongell (JIRA)" <ji...@apache.org> on 2007/01/25 03:05:49 UTC
[jira] Created: (OPENJPA-113) when you specify columm
table="empbean" in the xml file entity id or basic type when empbean is
the default table name, the mapping tool generates extra foreign key field
(eg.EmpBean_empid) in the table produced.
when you specify columm table="empbean" in the xml file entity id or basic type when empbean is the default table name, the mapping tool generates extra foreign key field (eg.EmpBean_empid) in the table produced.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: OPENJPA-113
URL: https://issues.apache.org/jira/browse/OPENJPA-113
Project: OpenJPA
Issue Type: Bug
Environment: windows xp, openjpa_097_incubating
Reporter: George Hongell
when you specify columm table="empbean" in the xml file entity id or basic type when empbean is the default table name, the mapping tool generates extra foreign key field (eg.EmpBean_empid) in the table produced. This causes a SQL0203 (A reference to column name is ambiguous) on empid when you try to persist this entity.
<entity name="EmpBean" class="EmpBean" access="FIELD">
<attributes>
<id name="empid">
<column name="empid" nullable="false" column-definition="integer" />
</id>
<basic name="name" fetch="EAGER">
<column length="40"/>
</basic>
<basic name="salary" fetch="EAGER" >
<column name="salary" table="empbean"/>
</basic>
<basic name="bonus" fetch="EAGER">
</basic>
<basic name="isManager" fetch="EAGER">
</basic>
<basic name="execLevel" fetch="EAGER">
</basic>
<basic name="hireDate" fetch="EAGER">
</basic>
<basic name="hireTime" fetch="EAGER">
</basic>
<basic name="hireTimestamp" fetch="EAGER">
</basic>
<many-to-one name="dept" target-entity="com.ibm.ws.query.entities.xml.DeptBean" fetch="EAGER">
</many-to-one>
<one-to-many name="manages" target-entity="DeptBean" fetch="LAZY" mapped-by="mgr">
<cascade><cascade-remove/></cascade>
</one-to-many>
<one-to-one name="home" target-entity="AddressBean" fetch="EAGER">
</one-to-one>
<one-to-one name="work" target-entity="AddressBean" fetch="EAGER">
</one-to-one>
<many-to-many name="tasks" target-entity="TaskBean" fetch="LAZY" mapped-by="emps">
</many-to-many>
</attributes>
</entity>
4787 mdd TRACE [main] openjpa.jdbc.SQL - <t 1094861122, conn 1274432502> executing stmnt 1129857880 CREATE TABLE EmpBean (empid INTEGER NOT NULL, bonus DOUBLE, execLevel INTEGER, hireDate DATE, hireTime TIME, hireTimestamp TIMESTAMP, isManager SMALLINT, name VARCHAR(40), EmpBean_empid INTEGER, salary DOUBLE, dept_deptno INTEGER, home_street VARCHAR(40), work_street VARCHAR(40), PRIMARY KEY (empid))
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (OPENJPA-113) when you specify columm
table="empbean" in the xml file entity id or basic type when empbean is
the default table name, the mapping tool generates extra foreign key field
(eg.EmpBean_empid) in the table produced.
Posted by "Kevin Sutter (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OPENJPA-113?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12478779 ]
Kevin Sutter commented on OPENJPA-113:
--------------------------------------
FYI, we have also encountered this problem with annotations. If you re-specify the table designation in the @Column
annotation, OpenJPA thinks there's another field named "<class><id>". This only seems to be a problem with @Id fields that also have an @Column annotation:
@Entity
@Table(name="ITEM")
public class ItemJPA {
public int itemId;
public String itemName;
public java.math.BigDecimal itemPrice;
public String itemData;
@Id
@Column(name="I_ID", table="ITEM")
@GeneratedValue(strategy=GenerationType.AUTO)
public int getItemId() {
return itemId;
}
:
}
In this case, OpenJPA created another attribute named ItemJPA_I_ID, and of course, the SQL statements generated were
not correct:
prepstmnt 1986688618 UPDATE ITEM SET I_PRICE = ? WHERE I_ID = ? AND ItemJPA_I_ID = ? [params=(BigDecimal) 500, (int) 1, (int) 1]
An easy workaround is to just remove this redundant specification in the @Column annotation.
Kevin
> when you specify columm table="empbean" in the xml file entity id or basic type when empbean is the default table name, the mapping tool generates extra foreign key field (eg.EmpBean_empid) in the table produced.
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: OPENJPA-113
> URL: https://issues.apache.org/jira/browse/OPENJPA-113
> Project: OpenJPA
> Issue Type: Bug
> Environment: windows xp, openjpa_097_incubating
> Reporter: George Hongell
> Priority: Minor
> Fix For: 0.9.7
>
>
> when you specify columm table="empbean" in the xml file entity id or basic type when empbean is the default table name, the mapping tool generates extra foreign key field (eg.EmpBean_empid) in the table produced. This causes a SQL0203 (A reference to column name is ambiguous) on empid when you try to persist this entity.
> <entity name="EmpBean" class="EmpBean" access="FIELD">
> <attributes>
> <id name="empid">
> <column name="empid" nullable="false" column-definition="integer" />
> </id>
> <basic name="name" fetch="EAGER">
> <column length="40"/>
> </basic>
> <basic name="salary" fetch="EAGER" >
> <column name="salary" table="empbean"/>
> </basic>
> <basic name="bonus" fetch="EAGER">
> </basic>
> <basic name="isManager" fetch="EAGER">
> </basic>
> <basic name="execLevel" fetch="EAGER">
> </basic>
> <basic name="hireDate" fetch="EAGER">
> </basic>
> <basic name="hireTime" fetch="EAGER">
> </basic>
> <basic name="hireTimestamp" fetch="EAGER">
> </basic>
> <many-to-one name="dept" target-entity="com.ibm.ws.query.entities.xml.DeptBean" fetch="EAGER">
> </many-to-one>
> <one-to-many name="manages" target-entity="DeptBean" fetch="LAZY" mapped-by="mgr">
> <cascade><cascade-remove/></cascade>
> </one-to-many>
>
> <one-to-one name="home" target-entity="AddressBean" fetch="EAGER">
> </one-to-one>
>
> <one-to-one name="work" target-entity="AddressBean" fetch="EAGER">
> </one-to-one>
>
> <many-to-many name="tasks" target-entity="TaskBean" fetch="LAZY" mapped-by="emps">
> </many-to-many>
> </attributes>
> </entity>
> 4787 mdd TRACE [main] openjpa.jdbc.SQL - <t 1094861122, conn 1274432502> executing stmnt 1129857880 CREATE TABLE EmpBean (empid INTEGER NOT NULL, bonus DOUBLE, execLevel INTEGER, hireDate DATE, hireTime TIME, hireTimestamp TIMESTAMP, isManager SMALLINT, name VARCHAR(40), EmpBean_empid INTEGER, salary DOUBLE, dept_deptno INTEGER, home_street VARCHAR(40), work_street VARCHAR(40), PRIMARY KEY (empid))
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (OPENJPA-113) when you specify columm
table="empbean" in the xml file entity id or basic type when empbean is
the default table name, the mapping tool generates extra foreign key field
(eg.EmpBean_empid) in the table produced.
Posted by "Patrick Linskey (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OPENJPA-113?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Patrick Linskey updated OPENJPA-113:
------------------------------------
Priority: Minor (was: Major)
> when you specify columm table="empbean" in the xml file entity id or basic type when empbean is the default table name, the mapping tool generates extra foreign key field (eg.EmpBean_empid) in the table produced.
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: OPENJPA-113
> URL: https://issues.apache.org/jira/browse/OPENJPA-113
> Project: OpenJPA
> Issue Type: Bug
> Environment: windows xp, openjpa_097_incubating
> Reporter: George Hongell
> Priority: Minor
> Fix For: 0.9.7
>
>
> when you specify columm table="empbean" in the xml file entity id or basic type when empbean is the default table name, the mapping tool generates extra foreign key field (eg.EmpBean_empid) in the table produced. This causes a SQL0203 (A reference to column name is ambiguous) on empid when you try to persist this entity.
> <entity name="EmpBean" class="EmpBean" access="FIELD">
> <attributes>
> <id name="empid">
> <column name="empid" nullable="false" column-definition="integer" />
> </id>
> <basic name="name" fetch="EAGER">
> <column length="40"/>
> </basic>
> <basic name="salary" fetch="EAGER" >
> <column name="salary" table="empbean"/>
> </basic>
> <basic name="bonus" fetch="EAGER">
> </basic>
> <basic name="isManager" fetch="EAGER">
> </basic>
> <basic name="execLevel" fetch="EAGER">
> </basic>
> <basic name="hireDate" fetch="EAGER">
> </basic>
> <basic name="hireTime" fetch="EAGER">
> </basic>
> <basic name="hireTimestamp" fetch="EAGER">
> </basic>
> <many-to-one name="dept" target-entity="com.ibm.ws.query.entities.xml.DeptBean" fetch="EAGER">
> </many-to-one>
> <one-to-many name="manages" target-entity="DeptBean" fetch="LAZY" mapped-by="mgr">
> <cascade><cascade-remove/></cascade>
> </one-to-many>
>
> <one-to-one name="home" target-entity="AddressBean" fetch="EAGER">
> </one-to-one>
>
> <one-to-one name="work" target-entity="AddressBean" fetch="EAGER">
> </one-to-one>
>
> <many-to-many name="tasks" target-entity="TaskBean" fetch="LAZY" mapped-by="emps">
> </many-to-many>
> </attributes>
> </entity>
> 4787 mdd TRACE [main] openjpa.jdbc.SQL - <t 1094861122, conn 1274432502> executing stmnt 1129857880 CREATE TABLE EmpBean (empid INTEGER NOT NULL, bonus DOUBLE, execLevel INTEGER, hireDate DATE, hireTime TIME, hireTimestamp TIMESTAMP, isManager SMALLINT, name VARCHAR(40), EmpBean_empid INTEGER, salary DOUBLE, dept_deptno INTEGER, home_street VARCHAR(40), work_street VARCHAR(40), PRIMARY KEY (empid))
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (OPENJPA-113) when you specify columm
table="empbean" in the xml file entity id or basic type when empbean is
the default table name, the mapping tool generates extra foreign key field
(eg.EmpBean_empid) in the table produced.
Posted by "Patrick Linskey (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/OPENJPA-113?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Patrick Linskey updated OPENJPA-113:
------------------------------------
Fix Version/s: 0.9.7
> when you specify columm table="empbean" in the xml file entity id or basic type when empbean is the default table name, the mapping tool generates extra foreign key field (eg.EmpBean_empid) in the table produced.
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: OPENJPA-113
> URL: https://issues.apache.org/jira/browse/OPENJPA-113
> Project: OpenJPA
> Issue Type: Bug
> Environment: windows xp, openjpa_097_incubating
> Reporter: George Hongell
> Fix For: 0.9.7
>
>
> when you specify columm table="empbean" in the xml file entity id or basic type when empbean is the default table name, the mapping tool generates extra foreign key field (eg.EmpBean_empid) in the table produced. This causes a SQL0203 (A reference to column name is ambiguous) on empid when you try to persist this entity.
> <entity name="EmpBean" class="EmpBean" access="FIELD">
> <attributes>
> <id name="empid">
> <column name="empid" nullable="false" column-definition="integer" />
> </id>
> <basic name="name" fetch="EAGER">
> <column length="40"/>
> </basic>
> <basic name="salary" fetch="EAGER" >
> <column name="salary" table="empbean"/>
> </basic>
> <basic name="bonus" fetch="EAGER">
> </basic>
> <basic name="isManager" fetch="EAGER">
> </basic>
> <basic name="execLevel" fetch="EAGER">
> </basic>
> <basic name="hireDate" fetch="EAGER">
> </basic>
> <basic name="hireTime" fetch="EAGER">
> </basic>
> <basic name="hireTimestamp" fetch="EAGER">
> </basic>
> <many-to-one name="dept" target-entity="com.ibm.ws.query.entities.xml.DeptBean" fetch="EAGER">
> </many-to-one>
> <one-to-many name="manages" target-entity="DeptBean" fetch="LAZY" mapped-by="mgr">
> <cascade><cascade-remove/></cascade>
> </one-to-many>
>
> <one-to-one name="home" target-entity="AddressBean" fetch="EAGER">
> </one-to-one>
>
> <one-to-one name="work" target-entity="AddressBean" fetch="EAGER">
> </one-to-one>
>
> <many-to-many name="tasks" target-entity="TaskBean" fetch="LAZY" mapped-by="emps">
> </many-to-many>
> </attributes>
> </entity>
> 4787 mdd TRACE [main] openjpa.jdbc.SQL - <t 1094861122, conn 1274432502> executing stmnt 1129857880 CREATE TABLE EmpBean (empid INTEGER NOT NULL, bonus DOUBLE, execLevel INTEGER, hireDate DATE, hireTime TIME, hireTimestamp TIMESTAMP, isManager SMALLINT, name VARCHAR(40), EmpBean_empid INTEGER, salary DOUBLE, dept_deptno INTEGER, home_street VARCHAR(40), work_street VARCHAR(40), PRIMARY KEY (empid))
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.