【问题标题】:how to get query result as XML in hibernate?如何在休眠中将查询结果作为 XML 获取?
【发布时间】:2012-05-02 08:16:06
【问题描述】:

我正在使用带有休眠功能的 struts2。有谁知道是否可以将查询结果返回为 XML 而不是域对象的 ArrayList?

【问题讨论】:

  • 您可以将整个 xml 对象作为字符串,然后在获取时将其重新解析回 xml。

标签: java xml hibernate struts2


【解决方案1】:

Hibernate 默认映射和持久化数据库记录,思想是 POJO,但实际上它也支持通过使用称为 Dynamic models 的实验性功能以 XML 形式持久化、映射和表示数据库记录。

例如,以 XML 格式输出记录:

/**Get the a new session that is in the DOM4J EntityMode**/
Session dom4jSession = session.getSession(EntityMode.DOM4J);
Element outputXML=(Element) dom4jSession.get(Employee.class, employeeId);
XMLWriter writer = new XMLWriter( System.out, OutputFormat.createPrettyPrint() );
writer.write( outputXML);

configure the format of the outputted XML,只能通过在XML中映射实体来实现。 AFAIK,没有等效的注释。

【讨论】:

    【解决方案2】:

    Hibernate 是一个对象关系映射器,这意味着它将关系数据库映射到对象。您想使用 Hibernate 返回一个对象,然后使用 XML Serializer 转换为 XML。

    Simple Serializer 可能是最好的入门工具。该网站包含大量教程和示例。

    http://simple.sourceforge.net/

    然而,Java 有大量的 XML 序列化器:

    http://karussell.wordpress.com/2009/09/03/xml-serializers-for-java/

    【讨论】:

    • 谢谢。很棒的链接。我检查了 Simple Serializer,看起来还不错。但我一定会保留这些链接以供将来参考。
    【解决方案3】:

    也许你可以,一旦你得到结果,使用XStream 将整个结果解析为 XML。 here 有一个关于 XStream 的简单教程。

    【讨论】:

      猜你喜欢
      • 2017-04-03
      • 2010-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-13
      • 2020-09-04
      • 1970-01-01
      相关资源
      最近更新 更多