[Biojava-l] BioJAVA-X + BioSQL + no update

mark.schreiber at novartis.com mark.schreiber at novartis.com
Wed Mar 15 07:02:02 UTC 2006


With BioJavaX if you want any changes to a RichSequence object to persist 
to the database you need to "save or add it" with Hibernate. 


SessionFactory sessionFactory = new 
Configuration().configure().buildSessionFactory(); 
Session session = sessionFactory.openSession();  
RichObjectFactory.connectToBioSQL(session);

RichSequence rs = ...;                // some sequence you've made or 
modified
session.saveOrUpdate("Sequence",rs);  // persist the sequence

***
Another way is to do everything inside a transaction (this example is from 
the BioJavaX docbook in CVS)

SessionFactory sessionFactory = new 
Configuration().configure().buildSessionFactory(); 
Session session = sessionFactory.openSession();  
RichObjectFactory.connectToBioSQL(session);

Transaction tx = session.beginTransaction();
try {

    // print out all the namespaces in the database

    Query q = session.createQuery("from Namespace");
    List namespaces = q.list();               // retrieve all the 
namespaces from the db
    for (Iterator i = namespaces.iterator(); i.hasNext(); ) {
        Namespace ns = (Namespace)i.next();
        System.out.println(ns.getName());     // print out the name of the 
namespace

        // print out all the sequences in the namespace
        Query sq = session.createQuery("from BioEntry where namespace= 
:nsp");
        // set the named parameter "nsp" to ns
        sq.setParameter("nsp",ns);
        List sequences = sq.list();

        for (Iterator j = sequences.iterator(); j.hasNext(); ) {
            BioEntry be = (BioEntry)j.next();        // RichSequences are 
BioEntrys too
            System.out.println("   "+be.getName());  // print out the name 
of the sequence

            // if the sequence is called bloggs, change its description to 
XYZ

            if (be.getName().equals("bloggs")) {
                be.setDescription("XYZ");
            }
        }

    }

    // commit and tidy up
    tx.commit(); 
    System.out.println("Changes committed.");

    // all sequences called bloggs now have a description of "XYZ" in the 
database

} catch (Exception e) {
    tx.rollback(); 
    System.out.println("Changes rolled back.");
    e.printStackTrace(); 
}

session.close();






Christian Köberle <koeberle at mpiib-berlin.mpg.de>
Sent by: biojava-l-bounces at lists.open-bio.org
03/14/2006 10:06 PM

 
        To:     bio java mailing list <biojava-l at biojava.org>
        cc:     (bcc: Mark Schreiber/GP/Novartis)
        Subject:        [Biojava-l] BioJAVA-X + BioSQL + no update


Hi,
I have following problem.
I put a RichSequence-Object into a BioSQL-DB, using the new Classes from 
BioJAVA-X.
Later I get these Sequence-Object from the BioSQL-DB (also with 
BioJAVA-X)  and create new Faeture-Objects and Note-Objects and add 
these to the Sequence-Object.
In the case of BioJAVA 1.4 all Features and Annotations are written into 
the BioSQL-DB. In case of BioJAVA-X there are  no changes ind the DB.
Includes BioJAVA-X a method to update the BioSQL-DB or how can I add the 
changes into the DB.

Thanks,
Christian

-- 
Christian Köberle

Max Planck Institute for Infection Biology
Department: Immunology
Schumannstr. 21/22
10117 Berlin

Tel: +49 30 28 460 562
e-mail: koeberle at mpiib-berlin.mpg.de

_______________________________________________
Biojava-l mailing list  -  Biojava-l at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/biojava-l







More information about the Biojava-l mailing list