如何在hibernate中以XML格式获取查询结果?

时间:2012-05-02 08:16:07

标签: java xml hibernate struts2

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

3 个答案:

答案 0 :(得分:2)

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,没有等效的注释。

答案 1 :(得分:1)

Hibernate是一个Object-Relational Mapper,意味着它将Relational数据库映射到对象。您希望使用Hibernate返回一个对象,然后使用XML Serializer转换为XML。

Simple Serializer可能是最好的开始使用。该网站包含许多教程和示例。

http://simple.sourceforge.net/

然而,有大量的XML Serializer for Java:

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

答案 2 :(得分:0)

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