[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