-->
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: schreiben von beans nach xml
PostPosted: Thu Oct 06, 2005 4:50 am 
Beginner
Beginner

Joined: Wed Sep 28, 2005 3:29 am
Posts: 20
Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp

Hibernate version:
3.1

laut doku kann man die beans ja auch als xml-persistieren. kann mir jemand eine kleine starthilfe liefern.

ich weiß, dass ich die xml-map-properties direkt im
hibernate.cfg.xml-File definieren kann.


Wie schreibe ich dann die xml-Files (ohne dass ich auch in die db schreiben muss)?

Vielleicht hat jemand ein kleines beispiel für mich

danke für die hilfe


Top
 Profile  
 
 Post subject:
PostPosted: Fri Oct 07, 2005 6:18 am 
Newbie

Joined: Fri Oct 07, 2005 5:54 am
Posts: 1
Hallo rda,
hab gerade erst das gleiche Problem gehabt. Musste Daten als XML exportieren und in eine andere DB importieren.
Erster Stolperstein: Im Mapping am Ende von collections 'embed-xml' auf 'false' setzen, ansonsten versucht Hibernate immer wieder
die Daten der übergeordneten Klasse dort einzusetzen und wird nie fertig.
Dann geht alles wie nach Lehrbuch:


Exportieren:
1.) dom4j Document erzeugen und Elemente mit einer Hibernate-Dom4jsession auslesen, diese in das dom4j-document schreiben

Code:
      Document doc = DocumentFactory.getInstance().createDocument();
      Element rootElement = doc.addElement("Items");
      Session dbsession = HibernateUtil.getSession();
      Session dom4jSession = dbsession.getSession(EntityMode.DOM4J);
      List results = dom4jSession.createQuery("from Items").list();
      Iterator iter = results.iterator();
      while (iter.hasNext()) {
         Element applicant = (Element) iter.next();
         rootElement.add(applicant);
      }
      File file = new File(System.getProperty("java.io.tmpdir"),"export.xml");
        FileOutputStream stream = new FileOutputStream(file);
      XMLWriter writer = new XMLWriter(stream);
      writer.write(doc);
      writer.close();

....


Einlesen:
2.) Das dom4j-document öffnen, durch die Elemente laufen und einer Hibernate-dom4j-session übergeben und speichern.
Code:
        //Zuerst xml als stream öffnen, dann:
      SAXReader xmlReader = new SAXReader();
      doc = xmlReader.read(stream);
      Element root = doc.getRootElement();
      Iterator iter = root.elementIterator();
      Session dom4jSession = session.getSession(EntityMode.DOM4J);
      
      while (iter.hasNext()) {
         Element item = (Element) iter.next();
         dom4jSession.saveOrUpdate("de.test.Item", item);
            }



Gruß,

_________________
-----------------
Wilhelm Willers


Top
 Profile  
 
 Post subject:
PostPosted: Tue Oct 11, 2005 9:42 am 
@w2:

Hast Du das auch mal mit bidirektionalen Beziehungen und ohne, daß Du initiale id's angegeben hast? Ich habe damit nämlich ein Problem (siehe anderes Posting).

Wäre cool, wenn Du da ein Beispiel posten könntest.

Robert


Top
  
 
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.