Hi Felix - There are some mapping differences between postgress and MySQL and Oracle, mostly seems to center around how they generate primary keys. I think you have solved this with your changes to the hbm.xml files. I will commit these to CVS.
The second problem you describe might be caused by the enrich process. Richard has created a biojavax equivalent of GenbankSequenceDB (RichGenbankSequenceDB I think) which will mean you can avoid using the enrich method. This may solve the problem. The problem might be with the primary key of some seqfeature, this might be because of the enrich() method. *ERROR: duplicate key violates unique constraint "seqfeature_bioentry_id_key"* It may also be because of a problem in the postgres mapping of features (although if it only happens with enrich()ed sequences then probably not). It could also be some old entries in your database from previous testing that may need cleaning out (although if the hibernate mapping is correct this is not likely). - Mark Felix Dreher <[EMAIL PROTECTED]> Sent by: [EMAIL PROTECTED] 03/09/2006 02:08 AM To: biojava-l@biojava.org cc: (bcc: Mark Schreiber/GP/Novartis) Subject: [Biojava-l] Problem: Hibernate - RichSequence Annotation Hello all, in my last post I described a problem with primary keys. When I tried to save a RichSequence with annotations in a PostgreSQL/BioSQL-Database using Hibernate, among others the exception --- org.postgresql.util.PSQLException: ERROR: relation "ontology_ontology_id_seq" does not exist --- was thrown. This could be solved by changing the <generator> tag in the ontology.hbm.xml from <generator class="identity"/> to <generator class="sequence"> <param name="sequence">ontology_pk_seq</param> </generator> (and similarly in the term.hbm.xml file). I'm not sure if this is specific for my project or if it's a general problem. Anyway, this works fine now, however another problem came up: I want to enrich a Sequence that was downloaded from Genbank and (by enriching) save all the annotations in the RichSequence object. Sequence seq = new GenbankSequenceDB().getSequence("NM_008160"); RichSequence s = RichSequence.Tools.enrich(seq); tdb.addSequence(s); (where tdb is a convenience wrapper for storing and retrieving sequences from the BioSQL-DB, it works with non-enriched sequences). From the debugging info I got, this works at the object level, but when I try to save the sequence to the DB, the following exception is thrown: 2006-03-08 18:35:00,642 ERROR [httpWorkerThread-28080-9] calling method: org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:72) *ERROR: duplicate key violates unique constraint "seqfeature_bioentry_id_key"* 2006-03-08 18:35:00,643 ERROR [httpWorkerThread-28080-9] calling method: org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:299) *Could not synchronize database state with session* org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:69) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202) at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:91) at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86) at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:171) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2048) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2427) at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:227) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1009) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:356) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106) at rnaiprediction.sequence.db.SequenceDB.addSequence(SequenceDB.java:67) at rnaiprediction.Queue.prerender(Queue.java:374) ...... *Caused by: java.sql.BatchUpdateException: Batch entry 0 insert into seqfeature (bioentry_id, source_term_id, type_term_id, display_name, rank, seqfeature_id) values (126, 269, 269, NULL, 0, 83) was aborted. Call getNextException to see the cause.* at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2497) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1298) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:347) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2559) at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195) ... 57 more Any suggestions would be highly appreciated! Regards, Felix -- Felix Dreher Max-Planck-Institute for Infection Biology Campus Charité Mitte Department of Immunology Mailing address: Schumannstraße 21/22 Visitors: Virchowweg 12 10117 Berlin Germany Tel.: +49 (0)30 28460-254 / -494 Mobile: +49 (0)163 7542426 _______________________________________________ Biojava-l mailing list - Biojava-l@biojava.org http://biojava.org/mailman/listinfo/biojava-l _______________________________________________ Biojava-l mailing list - Biojava-l@biojava.org http://biojava.org/mailman/listinfo/biojava-l