[Biojava-l] [BioSQL-l] Load/Update Genbank sequence issue

Guido Cappuccilli gcappuccilli at protelix.com
Thu May 22 15:39:37 UTC 2008


Gang,
did you fix the problem?
If so could you kindly share the solution?
I tried your code last night and I couldn't clear those Term instances  
from the cache.
Does RichObjectFactory.clearLRUCache() clear the first level or second  
level cache?
Again, I am not an expert, so I apologize if my question is obvious.
Thanks.
Guido



On May 21, 2008, at 11:12 AM, gang wu wrote:

> The scenario is quite simple: I'm using the database to store  
> Genbank genome sequences. Later I've to update the sequences when  
> Genbank has newer releases. The following two lines  are loading the  
> same sequence twice. The first time will insert a new BioEntry  
> record. the second time will delete the existing record and insert a  
> new record again.
>
>    sl.loadSeq("/genomeseq/bacteria/NC_005813.gbk", "genbank");
>    sl.loadSeq("/genomeseq/bacteria/NC_005813.gbk", "genbank");
>
> Following code is used to load multiple genome sequences by calling  
> the loadSeq() method multiple times. All failed except the first time.
>    sl.loadSeq("/genomeseq/bacteria/NC_005813.gbk", "genbank");
>    sl.loadSeq("/genomeseq/bacteria/NC_006723.gbk", "genbank");
>    sl.loadSeq("/genomeseq/bacteria/NC_008945.gbk", "genbank");
> The exception message has the details. Since all variables used in  
> loadSeq() are local, and I did the session flush/clear/close, then  
> it should be ok to call the method again.
>
> Thank you very much for your help.
>
> Gang
>
>
> Richard Holland wrote:
>> I'm not sure why you'd want to do that? Either way, as far as I know,
>> Hibernate sessions are not designed for that. If you want to delete
>> the sequence then replace it with a completely new sequence object,
>> you have to create a new sequence object - you can't reuse the one  
>> you
>> just deleted. The session info is embedded into that object so even  
>> if
>> you clear the session, the object still refers to it.
>>
>> If you just want to load a sequence, modify it, then save it back,  
>> you
>> should just load it then use saveOrUpdate to save it back again with
>> changes. If you want to replace objects in your database, don't load
>> them, just delete them, then use save to create new objects in their
>> place.
>>
>> cheers,
>> Richard
>>
>> 2008/5/21 gang wu <gwu at molbio.mgh.harvard.edu>:
>>
>>> I got another problem with almost the same code(see attached code  
>>> and
>>> output). If I call the loadSeq() only once, everything works fine.  
>>> The
>>> second call of the same method will fail. By the exception  
>>> message, it looks
>>> like the session is not cleaned up yet though at the end of the  
>>> method the
>>> session has been flush/clear/closed. Anything wrong?
>>>
>>> Or does anyone have a sequence data loader would like to share?  
>>> I'm quite
>>> frustrated after keeping trying to do this seems simple thing  
>>> without
>>> success. If I can make it work, I'd like to post it on the mailing  
>>> list.
>>> Thanks in advance.
>>>
>>> Gang
>>>
>>> ====================================================
>>> public class SequenceLoaderNew {
>>> public void loadSeq(String fileName, String namespace) throws
>>> FileNotFoundException, BioException, SQLException,  
>>> InterruptedException {
>>>     SessionFactory sessionFactory = new
>>> Configuration().configure().buildSessionFactory();
>>>     Session session = sessionFactory.openSession();
>>>     RichObjectFactory.connectToBioSQL(session);
>>>     Namespace ns = (Namespace)
>>> RichObjectFactory.getObject(SimpleNamespace.class, new Object[] 
>>> {namespace});
>>>     RichSequenceDB db = new BioSQLRichSequenceDB(session);
>>>     System.out.println("Start loading file " + fileName + " at " +
>>> System.currentTimeMillis());
>>>     BufferedReader br = new BufferedReader(new  
>>> FileReader(fileName));
>>>     RichSequenceIterator rsi =  
>>> RichSequence.IOTools.readGenbankDNA(br,
>>> ns);
>>>     try {
>>>         while (rsi.hasNext()) {
>>>             RichSequence sequence = rsi.nextRichSequence();
>>>             System.out.println("Loaded sequence" +  
>>> sequence.getAccession()
>>> + ", identifier: " + sequence.getIdentifier());
>>>             Transaction tx = session.beginTransaction();
>>>             try {
>>>                 System.out.println("Delete sequence" +
>>> sequence.getAccession() + " if exists.");
>>>                 db.removeSequence(sequence.getAccession());
>>>                 tx.commit();
>>>                 session.flush();
>>>                 session.clear();
>>>             } catch (Exception ex) {
>>>                 if (tx != null) {
>>>                     tx.rollback();
>>>                 }
>>>             }
>>>             try {
>>>                 tx = session.beginTransaction();
>>>                 System.out.println("Save sequence " +
>>> sequence.getAccession());
>>>                 //session.save("BioEntry", sequence);
>>>                 //db.addSequence(sequence);
>>>                 db.addRichSequence(sequence);
>>>                 tx.commit();
>>>                 System.out.println("Finished savig sequence " +
>>> sequence.getAccession() + "\n");
>>>             } catch (HibernateException ex) {
>>>                 tx.rollback();
>>>                 ex.printStackTrace();
>>>             }
>>>         }
>>>     } finally {
>>>         session.flush();
>>>         session.clear();
>>>         session.close();
>>>     }
>>> }
>>>
>>> public static void main(String[] args) throws BioException,
>>> FileNotFoundException, InterruptedException, SQLException {
>>>     SequenceLoaderNew sl = new SequenceLoaderNew();
>>>     sl.loadSeq("/genomeseq/bacteria/NC_005813.gbk", "genbank");
>>>     sl.loadSeq("/genomeseq/bacteria/NC_005813.gbk", "genbank");
>>> }
>>> }
>>> ====================================================
>>> Start loading file /genomeseq/bacteria/NC_005813.gbk at  
>>> 1211349859602
>>> Loaded sequenceNC_005813, identifier: 45478502
>>> Delete sequenceNC_005813 if exists.
>>> Save sequence NC_005813
>>> Finished savig sequence NC_005813
>>>
>>> Start loading file /genomeseq/bacteria/NC_005813.gbk at  
>>> 1211349863761
>>> Loaded sequenceNC_005813, identifier: 45478502
>>> Delete sequenceNC_005813 if exists.
>>> Save sequence NC_005813
>>> org.hibernate.NonUniqueObjectException: a different object with  
>>> the same
>>> identifier value was already associated with the session: [Term#20]
>>>     at
>>> org 
>>> .hibernate 
>>> .engine 
>>> .StatefulPersistenceContext 
>>> .checkUniqueness(StatefulPersistenceContext.java:590)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .performUpdate(DefaultSaveOrUpdateEventListener.java:284)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .entityIsDetached(DefaultSaveOrUpdateEventListener.java:223)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:89)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
>>>     at
>>> org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java: 
>>> 507)
>>>     at  
>>> org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
>>>     at
>>> org.hibernate.engine.CascadingAction 
>>> $5.cascade(CascadingAction.java:218)
>>>     at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268)
>>>     at  
>>> org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216)
>>>     at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java: 
>>> 169)
>>>     at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .AbstractSaveEventListener 
>>> .cascadeBeforeSave(AbstractSaveEventListener.java:431)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .AbstractSaveEventListener 
>>> .performSaveOrReplicate(AbstractSaveEventListener.java:265)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .AbstractSaveEventListener 
>>> .performSave(AbstractSaveEventListener.java:181)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .AbstractSaveEventListener 
>>> .saveWithGeneratedId(AbstractSaveEventListener.java:107)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .saveWithGeneratedOrRequestedId 
>>> (DefaultSaveOrUpdateEventListener.java:187)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
>>>     at
>>> org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java: 
>>> 507)
>>>     at  
>>> org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
>>>     at
>>> org.hibernate.engine.CascadingAction 
>>> $5.cascade(CascadingAction.java:218)
>>>     at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268)
>>>     at  
>>> org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216)
>>>     at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java: 
>>> 169)
>>>     at
>>> org 
>>> .hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java: 
>>> 296)
>>>     at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java: 
>>> 242)
>>>     at  
>>> org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:219)
>>>     at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java: 
>>> 169)
>>>     at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .AbstractSaveEventListener 
>>> .cascadeAfterSave(AbstractSaveEventListener.java:456)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .AbstractSaveEventListener 
>>> .performSaveOrReplicate(AbstractSaveEventListener.java:334)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .AbstractSaveEventListener 
>>> .performSave(AbstractSaveEventListener.java:181)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .AbstractSaveEventListener 
>>> .saveWithGeneratedId(AbstractSaveEventListener.java:107)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .saveWithGeneratedOrRequestedId 
>>> (DefaultSaveOrUpdateEventListener.java:187)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveEventListener 
>>> .saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveEventListener 
>>> .performSaveOrUpdate(DefaultSaveEventListener.java:27)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
>>>     at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
>>>     at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
>>>     at primerdb.SequenceLoaderNew.loadSeq(SequenceLoaderNew.java:51)
>>>     at primerdb.SequenceLoaderNew.main(SequenceLoaderNew.java:69)
>>> Exception in thread "main" org.hibernate.NonUniqueObjectException: a
>>> different object with the same identifier value was already  
>>> associated with
>>> the session: [Term#19]
>>>     at
>>> org 
>>> .hibernate 
>>> .engine 
>>> .StatefulPersistenceContext 
>>> .checkUniqueness(StatefulPersistenceContext.java:590)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .performUpdate(DefaultSaveOrUpdateEventListener.java:284)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .entityIsDetached(DefaultSaveOrUpdateEventListener.java:223)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:89)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
>>>     at
>>> org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java: 
>>> 507)
>>>     at  
>>> org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
>>>     at
>>> org.hibernate.engine.CascadingAction 
>>> $5.cascade(CascadingAction.java:218)
>>>     at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268)
>>>     at  
>>> org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216)
>>>     at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java: 
>>> 169)
>>>     at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .AbstractSaveEventListener 
>>> .cascadeBeforeSave(AbstractSaveEventListener.java:431)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .AbstractSaveEventListener 
>>> .performSaveOrReplicate(AbstractSaveEventListener.java:265)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .AbstractSaveEventListener 
>>> .performSave(AbstractSaveEventListener.java:181)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .AbstractSaveEventListener 
>>> .saveWithGeneratedId(AbstractSaveEventListener.java:107)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .saveWithGeneratedOrRequestedId 
>>> (DefaultSaveOrUpdateEventListener.java:187)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultSaveOrUpdateEventListener 
>>> .onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
>>>     at
>>> org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java: 
>>> 507)
>>>     at  
>>> org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
>>>     at
>>> org.hibernate.engine.CascadingAction 
>>> $5.cascade(CascadingAction.java:218)
>>>     at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268)
>>>     at  
>>> org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216)
>>>     at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java: 
>>> 169)
>>>     at
>>> org 
>>> .hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java: 
>>> 296)
>>>     at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java: 
>>> 242)
>>>     at  
>>> org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:219)
>>>     at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java: 
>>> 169)
>>>     at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .AbstractFlushingEventListener 
>>> .cascadeOnFlush(AbstractFlushingEventListener.java:131)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .AbstractFlushingEventListener 
>>> .prepareEntityFlushes(AbstractFlushingEventListener.java:122)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .AbstractFlushingEventListener 
>>> .flushEverythingToExecutions(AbstractFlushingEventListener.java:65)
>>>     at
>>> org 
>>> .hibernate 
>>> .event 
>>> .def 
>>> .DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java: 
>>> 26)
>>>     at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
>>>     at primerdb.SequenceLoaderNew.loadSeq(SequenceLoaderNew.java:60)
>>>     at primerdb.SequenceLoaderNew.main(SequenceLoaderNew.java:69)
>>> ====================================================
>>>
>>> Richard Holland wrote:
>>>
>>>> Forgot to copy my reply back to the lists!
>>>>
>>>>
>>>> ---------- Forwarded message ----------
>>>> From: Richard Holland <dicknetherlands at gmail.com>
>>>> Date: 2008/5/20
>>>> Subject: Re: [BioSQL-l] Load/Update Genbank sequence issue
>>>> To: gang wu <gwu at molbio.mgh.harvard.edu>
>>>>
>>>>
>>>> You need to substitute this line:
>>>>
>>>> RichSequenceIterator rsi =  
>>>> RichSequence.IOTools.readGenbankDNA(br, new
>>>> SimpleNamespace(namespace));
>>>>
>>>> with this line:
>>>>
>>>> Namespace ns =
>>>> (Namespace)RichObjectFactory.getObject(SimpleNamespace.class,new
>>>> Object[]{namespace});
>>>> RichSequenceIterator rsi =  
>>>> RichSequence.IOTools.readGenbankDNA(br, ns);
>>>>
>>>> cheers,
>>>> Richard
>>>>
>>>> PS. You're the second person who has quoted this section of code on
>>>> this list recently, and had the same problem with it. If you got it
>>>> from a website somewhere, could you send me the URL so I can get in
>>>> touch with the authors and get them to correct it? Thanks!
>>>>
>>>> 2008/5/20 gang wu <gwu at molbio.mgh.harvard.edu>:
>>>>
>>>>
>>>>> Hi all,
>>>>>
>>>>> I'm trying to load Genbank sequence into BioSQL database with
>>>>> BioJavax/Hibernate. It's Ok to load the first sequence. Then I  
>>>>> got the
>>>>> exception when loading new sequences or reloading the same  
>>>>> sequence.
>>>>> Seems
>>>>> the Hibernate is trying to insert "genbank" namespace again. Can  
>>>>> anybody
>>>>> tell me what I did wrong? Thanks in advance.
>>>>>
>>>>> Gang
>>>>>
>>>>> ================================================================
>>>>> public class SequenceLoaderNew {
>>>>> public void loadSeq(String fileName, String namespace) throws
>>>>> FileNotFoundException, BioException {
>>>>>    System.out.println("Start loading file " + fileName + " at " +
>>>>> System.currentTimeMillis());
>>>>>    BufferedReader br = new BufferedReader(new  
>>>>> FileReader(fileName));
>>>>>    Session session = new
>>>>> Configuration().configure().buildSessionFactory().openSession();
>>>>>    RichObjectFactory.connectToBioSQL(session);
>>>>>    RichSequenceDB db = new BioSQLRichSequenceDB(session);
>>>>>    RichSequenceIterator rsi =  
>>>>> RichSequence.IOTools.readGenbankDNA(br,
>>>>> new
>>>>> SimpleNamespace(namespace));
>>>>>    while (rsi.hasNext()) {
>>>>>        Transaction tx = session.beginTransaction();
>>>>>        RichSequence sequence = rsi.nextRichSequence();
>>>>>        System.out.println("Loaded sequence" +  
>>>>> sequence.getAccession() +
>>>>> ", identifier: " + sequence.getIdentifier());
>>>>>        try {
>>>>>            System.out.println("Delete sequence" +
>>>>> sequence.getAccession()
>>>>> + " if exists.");
>>>>>            db.removeSequence(sequence.getAccession());
>>>>>        } catch (Exception ex) {
>>>>>        }
>>>>>        try {
>>>>>            System.out.println("Save sequence " +
>>>>> sequence.getAccession());
>>>>>            session.save("BioEntry", sequence);
>>>>>            tx.commit();
>>>>>            session.flush();
>>>>>            session.clear();
>>>>>        } catch (HibernateException ex) {
>>>>>            tx.rollback();
>>>>>            ex.printStackTrace();
>>>>>        }
>>>>>    }
>>>>> }
>>>>>
>>>>> public static void main(String[] args) throws BioException,
>>>>> FileNotFoundException {
>>>>>    SequenceLoaderNew sl = new SequenceLoaderNew();
>>>>>    //sl.loadSeq("/genomeseq/bacteria/NC_005813.gbk", "genbank");
>>>>>    sl.loadSeq("/genomeseq/bacteria/NC_004349.gbk", "genbank");
>>>>> }
>>>>> }
>>>>> ================================================================
>>>>> org.hibernate.exception.ConstraintViolationException: could not  
>>>>> insert:
>>>>> [Namespace]
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .exception.SQLStateConverter.convert(SQLStateConverter.java:71)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java: 
>>>>> 43)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .id 
>>>>> .insert 
>>>>> .AbstractReturningDelegate 
>>>>> .performInsert(AbstractReturningDelegate.java:40)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .persister 
>>>>> .entity 
>>>>> .AbstractEntityPersister.insert(AbstractEntityPersister.java:2163)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .persister 
>>>>> .entity 
>>>>> .AbstractEntityPersister.insert(AbstractEntityPersister.java:2643)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .action 
>>>>> .EntityIdentityInsertAction 
>>>>> .execute(EntityIdentityInsertAction.java:51)
>>>>>    at org.hibernate.engine.ActionQueue.execute(ActionQueue.java: 
>>>>> 279)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .AbstractSaveEventListener 
>>>>> .performSaveOrReplicate(AbstractSaveEventListener.java:298)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .AbstractSaveEventListener 
>>>>> .performSave(AbstractSaveEventListener.java:181)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .AbstractSaveEventListener 
>>>>> .saveWithGeneratedId(AbstractSaveEventListener.java:107)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .DefaultSaveOrUpdateEventListener 
>>>>> .saveWithGeneratedOrRequestedId 
>>>>> (DefaultSaveOrUpdateEventListener.java:187)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .DefaultSaveOrUpdateEventListener 
>>>>> .entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .DefaultSaveOrUpdateEventListener 
>>>>> .performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .DefaultSaveOrUpdateEventListener 
>>>>> .onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
>>>>>    at
>>>>> org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java: 
>>>>> 507)
>>>>>    at  
>>>>> org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
>>>>>    at
>>>>> org.hibernate.engine.CascadingAction 
>>>>> $5.cascade(CascadingAction.java:218)
>>>>>    at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268)
>>>>>    at  
>>>>> org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216)
>>>>>    at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java: 
>>>>> 169)
>>>>>    at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .AbstractSaveEventListener 
>>>>> .cascadeBeforeSave(AbstractSaveEventListener.java:431)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .AbstractSaveEventListener 
>>>>> .performSaveOrReplicate(AbstractSaveEventListener.java:265)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .AbstractSaveEventListener 
>>>>> .performSave(AbstractSaveEventListener.java:181)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .AbstractSaveEventListener 
>>>>> .saveWithGeneratedId(AbstractSaveEventListener.java:107)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .DefaultSaveOrUpdateEventListener 
>>>>> .saveWithGeneratedOrRequestedId 
>>>>> (DefaultSaveOrUpdateEventListener.java:187)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .DefaultSaveEventListener 
>>>>> .saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .DefaultSaveOrUpdateEventListener 
>>>>> .entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .DefaultSaveEventListener 
>>>>> .performSaveOrUpdate(DefaultSaveEventListener.java:27)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .event 
>>>>> .def 
>>>>> .DefaultSaveOrUpdateEventListener 
>>>>> .onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
>>>>>    at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java: 
>>>>> 535)
>>>>>    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
>>>>>    at primerdb.SequenceLoaderNew.loadSeq(SequenceLoaderNew.java: 
>>>>> 38)
>>>>>    at primerdb.SequenceLoaderNew.main(SequenceLoaderNew.java:52)
>>>>> Caused by:
>>>>> com 
>>>>> .mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException:
>>>>> Duplicate entry 'genbank' for key 'name'
>>>>>    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java: 
>>>>> 1011)
>>>>>    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java: 
>>>>> 956)
>>>>>    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
>>>>>    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
>>>>>    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
>>>>>    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
>>>>>    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java: 
>>>>> 2542)
>>>>>    at
>>>>>
>>>>> com 
>>>>> .mysql 
>>>>> .jdbc.PreparedStatement.executeInternal(PreparedStatement.java: 
>>>>> 1734)
>>>>>    at
>>>>>
>>>>> com 
>>>>> .mysql 
>>>>> .jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)
>>>>>    at
>>>>>
>>>>> com 
>>>>> .mysql 
>>>>> .jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)
>>>>>    at
>>>>>
>>>>> com 
>>>>> .mysql 
>>>>> .jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)
>>>>>    at
>>>>>
>>>>> org.hibernate.id.IdentityGenerator 
>>>>> $ 
>>>>> GetGeneratedKeysDelegate 
>>>>> .executeAndExtract(IdentityGenerator.java:73)
>>>>>    at
>>>>>
>>>>> org 
>>>>> .hibernate 
>>>>> .id 
>>>>> .insert 
>>>>> .AbstractReturningDelegate 
>>>>> .performInsert(AbstractReturningDelegate.java:33)
>>>>>    ... 31 more
>>>>> ================================================================
>>>>>
>>>>> _______________________________________________
>>>>> BioSQL-l mailing list
>>>>> BioSQL-l at lists.open-bio.org
>>>>> http://lists.open-bio.org/mailman/listinfo/biosql-l
>>>>>
>>>>>
>>>>>
>>>
>
> _______________________________________________
> BioSQL-l mailing list
> BioSQL-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/biosql-l
>




More information about the Biojava-l mailing list