[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