Just a little update on this issue: I tried to run the same problem on
a linux machine and it properly creates the schema with both
@ManyToOne relations.

I'm puzzled to know what the problem is, because I'd like to continue
working on my Mac.


Lile


On Tue, Jun 15, 2010 at 7:26 AM,  <[email protected]> wrote:
> Hi,
>
> Here is the persistence.xml:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <persistence xmlns="http://java.sun.com/xml/ns/persistence";
>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; version="2.0">
>       <persistence-unit name="project">
>
>               <description>project</description>
>               
> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
>
>               <class>persistence.db.dao.Project</class>
>               <class>persistence.db.dao.Developer</class>
>               <class>persistence.db.dao.Participation</class>
>
>               <properties>
>                       <property name="openjpa.jdbc.DBDictionary" 
> value="postgres" />
>                       <property name="openjpa.jdbc.SynchronizeMappings" 
> value="buildSchema" />
>                       <property name="openjpa.ConnectionDriverName"
> value="org.postgresql.Driver" />
>                       <property name="openjpa.ConnectionURL"
> value="jdbc:postgresql://localhost:5432/project" />
>                       <property name="openjpa.ConnectionUserName" 
> value="[user]" />
>                       <property name="openjpa.ConnectionPassword" 
> value="[psswd]" />
>                       <property name="openjpa.Log" value="SQL=TRACE" />
>               </properties>
>
>       </persistence-unit>
> </persistence>
>
>
> Here is the output of the java -jar /path/to/openjpa.jar:
>
> Apache svn revision: 422266:935683
>
> os.name: Mac OS X
> os.version: 10.6.3
> os.arch: x86_64
>
> java.version: 1.6.0_20
> java.vendor: Apple Inc.
>
> java.class.path:
>       openjpa-all-2.0.0.jar
>
>
> And here is the SQL trace I get:
>
> 7775  project  TRACE  [main] openjpa.jdbc.SQL - <t 1902059420, conn
> 1129698211> executing stmnt 630883350 CREATE TABLE Developer (id
> BIGINT NOT NULL, connected BOOL NOT NULL, name VARCHAR(200) NOT NULL,
> version ABSTIME, PRIMARY KEY (id))
> 7884  project  TRACE  [main] openjpa.jdbc.SQL - <t 1902059420, conn
> 1129698211> [109 ms] spent
> 8175  project  TRACE  [main] openjpa.jdbc.SQL - <t 1902059420, conn
> 165054145> executing stmnt 2112994712 CREATE TABLE
> OPENJPA_SEQUENCE_TABLE (ID SMALLINT NOT NULL, SEQUENCE_VALUE BIGINT,
> PRIMARY KEY (ID))
> 8254  project  TRACE  [main] openjpa.jdbc.SQL - <t 1902059420, conn
> 165054145> [79 ms] spent
> 8560  project  TRACE  [main] openjpa.jdbc.SQL - <t 1902059420, conn
> 885516455> executing stmnt 337501626 CREATE TABLE Participation (id
> BIGINT NOT NULL, version ABSTIME, PROJECT_ID BIGINT, PRIMARY KEY (id))
> 8707  project  TRACE  [main] openjpa.jdbc.SQL - <t 1902059420, conn
> 885516455> [147 ms] spent
> 9025  project  TRACE  [main] openjpa.jdbc.SQL - <t 1902059420, conn
> 621221153> executing stmnt 1836265170 CREATE TABLE Project (id BIGINT
> NOT NULL, name VARCHAR(200) NOT NULL, version ABSTIME, PRIMARY KEY
> (id))
> 9117  project  TRACE  [main] openjpa.jdbc.SQL - <t 1902059420, conn
> 621221153> [92 ms] spent
> 9492  project  TRACE  [main] openjpa.jdbc.SQL - <t 1902059420, conn
> 1002735346> executing stmnt 887699865 ALTER TABLE Participation ADD
> FOREIGN KEY (PROJECT_ID) REFERENCES Project (id) DEFERRABLE
> 9581  project  TRACE  [main] openjpa.jdbc.SQL - <t 1902059420, conn
> 1002735346> [88 ms] spent
>
>
> As you can see, it doesn't create a column for DEVELOPER_ID.
>
> Any help will be greatly appreciated.
>
> Lile
>
>
> On Seg 14/06/10 15:43 , [email protected] sent:
>> Hi,
>>
>>
>>
>> I’m trying to build my first application using OpenJPA, but I got stuck
>> with an odd problem.
>>
>>
>> When declare more than one @ManyToOne relation on one entity, only one
>> (sometimes none) of them is mapped correctly on the database. I’ve tried
>> with existing tables and creating the tables by
>> running the program, but the behavior doesn’t change.
>>
>>
>>
>> Here is the example I’m trying:
>>
>>
>>
>> @Entity
>>
>> public class Project implements Serializable{
>>
>>
>>
>> /**
>>
>> *
>>
>> */
>>
>> private static final long serialVersionUID = 1L;
>>
>>
>>
>> @Id
>>
>> @GeneratedValue(strategy = GenerationType.TABLE)
>>
>> private long id;
>>
>>
>>
>> @Column(nullable = false, length=200)
>>
>> private String name;
>>
>> ...
>>
>> }
>>
>>
>>
>> @Entity
>>
>> public class Developer implements Serializable{
>>
>>
>>
>> /**
>>
>> *
>>
>> */
>>
>> private static final long serialVersionUID = -3366659313976911445L;
>>
>>
>>
>> @Id
>>
>> @GeneratedValue(strategy = GenerationType.TABLE)
>>
>> protected long id;
>>
>>
>>
>> @Column(nullable = false, length = 200)
>>
>> private String name;
>>
>> ...
>>
>> }
>>
>>
>>
>> @Entity
>>
>> public class Participation implements Serializable {
>>
>>
>>
>> /**
>>
>> *
>>
>> */
>>
>> private static final long serialVersionUID = -5739921124942905231L;
>>
>>
>>
>> @Id
>>
>> @GeneratedValue(strategy = GenerationType.TABLE)
>>
>> protected long id;
>>
>>
>>
>> @ManyToOne(cascade = CascadeType.ALL)
>>
>> @ForeignKey
>>
>> private Project project;
>>
>>
>>
>> @ManyToOne(cascade = CascadeType.ALL)
>>
>> @ForeignKey
>>
>> private Developer developer;
>>
>> ...
>>
>> }
>>
>>
>>
>>
>>
>> In Participation either a column referring to Project or one referring to
>> Developer is created. If I add another @ManyToOne relation, I still get
>> only the mapping of one column correctly.
>>
>>
>> I’m using PosgreSQL.
>>
>>
>>
>> Any ideas of what is happening?
>>
>> Help me, please.
>>
>>
>>
>> Lile
>>
>>
>>
>>
>>
>
>
>

Reply via email to