[Biojava-dev] BioEntryRelationship problem

Richard Holland dicknetherlands at gmail.com
Fri May 9 08:36:49 UTC 2008


Guido you are absolutely right - that appears to have been a typo on
my behalf when I wrote the files. The change you suggest is correct.

Mark - can you make the change in Subversion? I am not quite set up
again yet to be able to do it myself....

cheers,
Richard

2008/5/9 Mark Schreiber <markjschreiber at gmail.com>:
> Hi -
>
> The change you propose does seem to make sense. Richard, can you
> comment on this?
>
> Best regards,
>
> - Mark
>
> On Thu, May 8, 2008 at 12:55 AM, Guido Cappuccilli
> <gcappuccilli at protelix.com> wrote:
>>
>> First of all, I am new here so I apologize in advance if I am discussing something obvious.
>> Moreover I am NOT an BioJava nor Hibernate guru.
>>
>> I am working on a small project using BioJava (1.6) + BioSQL (1.0)  (mysql 4.1.22 on Mac OS X server 10.4.11).
>> I want to persist relationships between BioEntry objects.
>> Storing objects to DB didn't give any problems.
>>
>> Sample code:
>>
>>        Transaction tx=s.beginTransaction();
>>        try {
>>                ComparableTerm term=RichObjectFactory.getDefaultOntology().getOrCreateTerm("TestTerm");
>>                Namespace ns=RichObjectFactory.getDefaultNamespace();
>>                BioEntry parent=new SimpleBioEntry(ns, "parentbe", "pACCESSION",0);
>>                BioEntry child=new SimpleBioEntry(ns, "childbe", "cACCESSION",0);
>>                BioEntryRelationship rel=new SimpleBioEntryRelationship(parent, child, term, null);
>>                parent.addRelationship(rel);
>>                s.saveOrUpdate("BioEntry",parent );
>>                tx.commit();
>>        } catch (Exception ex) {
>>                tx.rollback();
>>        }
>>
>> When I started to query the db I got errors from hibernate (see below).
>> After digging a little I found out that hibernate couldn't query the Bioentry_relationship table.
>> Even a simple "from BioEntryRelationship" query was giving me these errors.
>>
>> 09:43:19,088 ERROR BasicPropertyAccessor:94 - IllegalArgumentException in class: org.biojavax.bio.SimpleBioEntryRelationship, setter method of property: object
>> 09:43:19,089 ERROR BasicPropertyAccessor:98 - expected type: org.biojavax.bio.BioEntry, actual value: org.biojavax.bio.seq.SimpleRichFeature$$EnhancerByCGLIB$$91b34b44
>>
>>
>> Checking the mapping files I found the following line in the BioEntryRelationship.hbm.xml:
>>
>> <many-to-one name="object" class="Feature" column="object_bioentry_id" not-null="true" cascade="persist,merge,save-update" node="@objectFeatureId" embed-xml="false"/>
>>
>> It looked strange to me.
>> So I've changed to
>>
>> <many-to-one name="object" class="BioEntry" column="object_bioentry_id" not-null="true" cascade="persist,merge,save-update" node="@objectBioEntryId" embed-xml="false"/>
>>
>> Now I can query relationships without problems.
>> Did I do the right thing or I am messing up the mapping and I am breaking something else?
>> If this has been already discussed I apologize and I would appreciate a link to the original thread.
>> Thank you in advance
>> G.
>>
>>
>>
>>
>>     _______________________________________________
>> biojava-dev mailing list
>> biojava-dev at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/biojava-dev
>



More information about the biojava-dev mailing list