kapok

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            455 隨筆 :: 0 文章 :: 76 評論 :: 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 笨笨 閱讀(614) 評論(0)  編輯  收藏 所屬分類: J2EEHibernateAndSpringALL
          主站蜘蛛池模板: 汉川市| 阳西县| 石景山区| 东乡县| 乡宁县| 普洱| 麻江县| 兖州市| 青铜峡市| 四子王旗| 衡山县| 开鲁县| 迁安市| 汪清县| 泰和县| 包头市| 高尔夫| 牙克石市| 离岛区| 台北县| 洪江市| 肥西县| 江城| 韶关市| 永年县| 当雄县| 舟山市| 隆林| 冕宁县| 定襄县| 抚州市| 神木县| 通河县| 富顺县| 汉沽区| 桦南县| 玉环县| 石首市| 永顺县| 商丘市| 井研县|