• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag
 

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: WO and MySQL
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: WO and MySQL


  • Subject: Re: WO and MySQL
  • From: LD <email@hidden>
  • Date: Tue, 18 Oct 2005 00:36:50 +1000

Hi there,

On 17/10/2005, at 4:59 PM, Johan Henselmans wrote:

On 17-okt-2005, at 5:44, LD wrote:

On 17/10/2005, at 3:25 AM, Colin Shreffler wrote:

I’m working on my first WO project. I’ve been trying to get it to work with
PostgreSQL for some time because I believe it to be a great RDBMS, but
continue to have problems. One step forward, one step back, etc. I’ve
tried to use Project Wonder to solve these issues, but continue to have
problems... I’m getting fed up!

As Anjo mentioned, it'd be good to know exactly what problems you're having.


I'm using PostgreSQL without any problems.

The trick to getting it working all boils down to the plugin. You'll want to install the PostgresqlPlugIn.EOMplugin and the PostgresqlPlugIn.framework and the correct locations (/Developer/ EOMBunles, Library/Frameworks respectively) and make sure to reference the framework in your project.

The one thing to be aware of when using the current version of the Project Wonder (and even the HexDreams version) of the PostgresqlPlugIns is that if you decide to use the "serial" column type for your primary keys (i.e., selecting these in EOModeler for a column) then the plugin won't find the correct column [1].

There's an easy fix for this (by editing the source code for the plugin). Otherwise, simply use an int type, choose to create primary key support when generating SQL from EOModeler and you should be right.


Let me know if you need more help with this...

[1] The postgres serial type automatically creates a sequenced called: <tableName>_<pkColumn>_SEQ whereas the current version of the plugin looks for a sequence called <tableName>_SEQ.

You might having trouble that the user that is connecting to the database does not have permission to generate new tables. The wonder plugin used to generate a EO_PK_TABLE.

You can view the source online here:
http://cvs.sourceforge.net/viewcvs.py/wonder/Wonder/PlugIns/ PostgresqlPlugIn/Sources/com/webobjects/jdbcadaptor/


PostgresqlPlugIn.java has

protected static String sequenceNameForEntity(EOEntity entity) {
    return entity.primaryKeyRootName() + "_SEQ";
}

i.e., <tableName>_SEQ

Customise it as required. I suggest something like the following if you want it to be automatically compatible with using the "serial" column type sequences as created by postgres.

protected static String sequenceNameForEntity( EOEntity entiy ) {
    StringBuffer sequenceName;

sequenceName = new StringBuffer();
sequenceName.append( entity.primaryKeyRootName() ); // i.e., the table name
sequenceName.append( entity.primaryKeyAttributeNames ().valueForKey( "columnName" ).componentsJoinedByString( "_" ) );
sequenceName.append( "_SEQ" );


return sequenceName.toString();
}
i.e., <tableName>_<primaryKey0>_<primaryKeyN>_SEQ. In most cases where there's a single primary key: <tableName>_<primaryKey0>_SEQ


The other one used to be that one could not use the serial type, but from your comments it seems that has been resolved. I would really like if the Wonder plugin would use the available seq, however. Sometimes one has to connect to an existing database, with _seqs that are used by other programs to generate new primary keys.

Yep. As above, it's easy to fix.

I liked the hexdreams plugin better, in that respect: using the .seq tables to generate new primary keys makes it easier to play nice with other programming languages (connections through ODBC, php or perl) to generate primary keys.

I had to customise the hexdreams plugin actually to get it working...

Does the wonder postgresql-plugin still rely on an EO_PK_TABLE construction for the generation of primary keys that are not based on the serial type?

See above. As with any open-source project, you can change it to suit.

with regards,
--

LD


_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • Re: WO and MySQL
      • From: Arturo Perez <email@hidden>
References: 
 >WO and MySQL (From: Colin Shreffler <email@hidden>)
 >Re: WO and MySQL (From: LD <email@hidden>)
 >Re: WO and MySQL (From: Johan Henselmans <email@hidden>)

  • Prev by Date: Problems deserializing EOGenericRecords via WebServices
  • Next by Date: Re: WO and MySQL
  • Previous by thread: Re: WO and MySQL
  • Next by thread: Re: WO and MySQL
  • Index(es):
    • Date
    • Thread