[Biojava-l] Getting features with the same Location

mark.schreiber at novartis.com mark.schreiber at novartis.com
Fri Dec 12 01:49:05 UTC 2008


Are you sure about that?  Under the JPA spec (which Hibernate can comply 
with) the primary key is often public and settable.  I don't think 
Hibernate gets confused if you change it but I suspect  the programmer 
might.

There are cases where you would want to set it.  For example you retrieve 
record 1 change a few fields and then change the PK to 2 and then persist 
it back. You now have two separate records. Effectively a template copy. 
If you have auto PK generation you can simply make the PK = null and let 
the DB find a new PK for you.

Yes it can be a little bit dangerous if you don't think about it but it 
probably doesn't need to be private.

Even if it is can't there be a public getter?

- Mark

biojava-l-bounces at lists.open-bio.org wrote on 12/12/2008 12:28:11 AM:

> The rationale was to prevent it being changed by the programmer, because
> if that happens then Hibernate gets seriously confused (it relies on the
> PKs remaining constant whilst an object is in memory).
> 
> Hilmar Lapp wrote:
> > 
> > On Dec 11, 2008, at 10:02 AM, Richard Holland wrote:
> > 
> >> Yes, the bioentry_id is private.
> > 
> > 
> > What's the rationale for that? It's the primary key; why should it be
> > forbidden to view it, even for derived classes?
> > 
> > (For a Bioperl-db persistent object, the primary key is public and
> > always accessible as $pobj->primary_key(). It can even be changed by 
the
> > programmer, though of course you should know what you're doing when 
you
> > decide to do that.)
> > 
> >     -hilmar
> 
> -- 
> Richard Holland, BSc MBCS
> Finance Director, Eagle Genomics Ltd
> M: +44 7500 438846 | E: holland at eaglegenomics.com
> http://www.eaglegenomics.com/
> _______________________________________________
> Biojava-l mailing list  -  Biojava-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/biojava-l

_________________________

CONFIDENTIALITY NOTICE

The information contained in this e-mail message is intended only for the 
exclusive use of the individual or entity named above and may contain 
information that is privileged, confidential or exempt from disclosure 
under applicable law. If the reader of this message is not the intended 
recipient, or the employee or agent responsible for delivery of the 
message to the intended recipient, you are hereby notified that any 
dissemination, distribution or copying of this communication is strictly 
prohibited. If you have received this communication in error, please 
notify the sender immediately by e-mail and delete the material from any 
computer.  Thank you.



More information about the Biojava-l mailing list