-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 
Author Message
 Post subject: keine Reaktion auf delete(objekt);
PostPosted: Tue Dec 14, 2010 10:42 am 
Newbie

Joined: Tue Dec 14, 2010 10:33 am
Posts: 1
Hallo,

im Rahmen eines FH Projektes beschäftige ich mich zum ersten mal mit Hibernate und ich bin auch schon an einem Punkt angekommen, an dem ich nicht mehr weiter komme:-)

ich versuche mit session.delete(objekt) einen Datensatz zu löschen und es passiert einfach nix.
Hier die Mappingfile von der betroffenen Klasse:
Code:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <class name="WurstBook.Models.Freundschaft, WurstBook" table="freundschaften">
    <id name="Id" column="ID" type="int" >
      <generator class="native"></generator>
    </id>
    <many-to-one name="Verweis1" class="WurstBook.Models.VerweisObjekt, WurstBook" column="verweis1" cascade="all" />
    <many-to-one name="Verweis2" class="WurstBook.Models.VerweisObjekt, WurstBook" column="verweis2" cascade="all" />
  </class>
</hibernate-mapping>


und hier nochmal die Methode:
Code:
        public void delete(object o)
        {
          //  NHibernate.ISession sess = factory.GetCurrentSession();
            session.Delete(o);
           
           // session.Flush();
        }


und hier der Schnipsel zum aufrufen:

Code:
        protected void ButtonFreundBeenden_Click(object sender, EventArgs e)
        {

            //String hqlString = "select freundschaft FROM Freundschaft as freundschaft where Verweis1 = "+this.freundschaft.Verweis1+" and Verweis2 = "+this.freundschaft.Verweis2;
           
            // String hqlString = "delete from Freundschaft where Verweis1 = "+this.freundschaft.Verweis1+" and Verweis2 = "+this.freundschaft.Verweis2;
            //DatabaseManager.getDatabaseManager().delete(hqlString);
           DatabaseManager.getDatabaseManager().delete(freundschaft);
       
        }


alles andere geht, also insert, update und select...nur das delete will er net.
Kann mir einer von euch helfen?

Was ich noch erwähnen sollte, ich arbeite mit NHibernate....nicht schimpfen, musste das Projekt mit ASP machen. Sollte aber genauso funktionieren wie Hibernate.

Schon mal vielen Dank vorab.

Gruß
Sascha


Top
 Profile  
 
 Post subject: Re: keine Reaktion auf delete(objekt);
PostPosted: Thu Jan 06, 2011 11:30 am 
Senior
Senior

Joined: Fri May 08, 2009 12:27 pm
Posts: 168
Was sind denn Verweis1 und Verweis2 für Dinger?

SQL bzw. HQL aus Strings zusammenkonkatenieren ist fast immer eine ganz schlechte Idee. Insbesondere Vergleichswerte sollte man nicht so in die Query reintun, Du holst Dir damit wunderbare SQL Injections in den Code hinein.

Zur eigentlichen Frage kann ich wenig sagen, eigentlich sollte delete nicht anders als update und select funktionieren.
Allerdings würde ich select eher über die Criteria-API machen, soweit das möglich ist. Da wird einem das SQL automatisch zusammengebaut, das ist insbesondere dann nützlich, wenn man mal tatsächlich zur Laufzeit Filterbedingungen zusammenstöpseln muss.
Updates und Deletes laufen dann erst als Select, danach ruft man dann session.delete(object) auf, um die zu löschenden Datensätze zu markieren, am Ende macht man session.commit() (oder session.getCurrentTransaction().commit(), glaube ich). So läuft's jedenfalls in Java, NHibernate kenn ich nicht (und keine Sorge, ASP schändet nur den, der's auswählt, nicht den, der damit arbeiten muss ;-) ) (und vielleicht auch den nicht).


Top
 Profile  
 
 Post subject: Re: keine Reaktion auf delete(objekt);
PostPosted: Mon Jan 31, 2011 6:04 am 
Newbie

Joined: Mon Jan 31, 2011 4:48 am
Posts: 2
Hallo,

ich benutze immer cascade="all-delete-orphan" bei Kompositionen und es scheint zu funktionieren.


Mfg

Jan Eisner


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.