kapok

          垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            455 隨筆 :: 0 文章 :: 76 評(píng)論 :: 0 Trackbacks

          http://www.hibernate.org/218.html

          HyperJAXB - relational persistence for XML objects with JAXB and Hibernate

          What is HyperJAXB?

          HyperJAXB is an add-on for Sun's reference implementation of JAXB (Java Architecture for XML Binding). It provides JAXB objects with relational persistence layer using Hibernate.

          What can I do with HyperJAXB?

          HyperJAXB eases usage of XML with relational databases. With HyperJAXB you can combine JAXB and Hibernate to implement one of the following target usage scenarios:

          • load (unmarshal) object structure from XML document and save (persist) these objects in a relational database;
          • load objects from a relational database and present (marshal) loaded objects in XML form;
          • query relational database using HQL and present query results in XML.

          How it works?

          JAXB is basically a code generation engine. It accepts a schematic definition of you XML documents (usually in the form of an XML Schema) as input and generates source code of XML-enabled classes. HyperJAXB augments generated code by adding Hibernate XDoclet annotations. Added annotations effectively define Hibernate O/R mapping for the generated classes.

          Combination of JAXB RI, HyperJAXB and Hibernate toolset allows you automatically generate the following artifacts out of you XML Schema:

          • source code of XML-enabled objects with Hibernate XDoclet annotations;
          • object/relational mapping for Hibernate;
          • database schema for the target database.

          Please see the reference for more information.

          A code example?

          Unmarshalling and saving:

          // Unmarshall the document
          final MyObject myObject = (MyObject) unmarshaller.unmarshal(document);
          
          // Open the session, save object into the database
          final Session saveSession = sessionFactory.openSession();
          // Save id for the later use
          final String id = saveSession.save(myObject);
          saveSession.flush();
          // Close the session
          saveSession.close()
          

          Loading and marshalling:

          // Open the session, load the object
          final Session loadSession = sessionFactory.openSession();
          final MyObject myLoadedObject = (MyObject) loadSession.load(MyObject.class, id);
          loadSession.close();
          
          // Marshall loaded object into the document
          final Document loadedDocument = documentBuilder.newDocument();
          marshaller.marshal(myLoadedObject, loadedDocument);
          

          Mapping generated by HyperJAXB ensures that document and loadedDocument are identical.

          Where can I find it?

          Check out this project on https://hyperjaxb.dev.java.net.

          posted on 2005-05-24 20:30 笨笨 閱讀(609) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): J2EEHibernateAndSpringALL
          主站蜘蛛池模板: 阿荣旗| 西充县| 蕲春县| 南康市| 寿宁县| 宜君县| 宁强县| 平遥县| 屏东市| 平乡县| 来凤县| 德州市| 德惠市| 新龙县| 崇州市| 兴安盟| 临夏县| 登封市| 阿克苏市| 陆河县| 磴口县| 巨野县| 新晃| 嘉荫县| 灵山县| 贵定县| 安福县| 京山县| 马关县| 马龙县| 大化| 松桃| 扎赉特旗| 彭州市| 简阳市| 夹江县| 太康县| 衡阳县| 苏州市| 宝应县| 祁连县|