hibernate 执行sql语句总结

1.使用SQLQuery

hibernate对原生SQL查询执行的控制是通过SQLQuery接口进行的.

Session.createSQLQuery();

1.1标量查询

最基本的SQL查询就是获得一个标量(数值)的列表。

sess.createSQLQuery("SELECT * FROM CATS").list();
sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE FROM CATS").list();

返回一个Object数组(Object[])组成的List,数组每个元素都是CATS表的一个字段值。Hibernate会使用ResultSetMetadata来判定返回的标量值的实际顺序和类型。 如果要避免过多的使用ResultSetMetadata,或者只是为了更加明确的指名返回值,可以使用addScalar()。

sess.createSQLQuery("SELECT * FROM CATS")
    .addScalar("ID", Hibernate.LONG)
    .addScalar("NAME", Hibernate.STRING)
    .addScalar("BIRTHDATE", Hibernate ...
more ...

JSONObject 过滤字段

使用net.sf.json.JSONObject包

在使用JSONObject.fromObject把对象转换成json时,经常会有一些不需要的字段,可以通过配置文件设置忽略来精简json长度,并可忽略部分无法转换成json的字段,如空间变量。

建立配置文件

JsonConfig jsonConfig = new JsonConfig();

设置默认忽略

jsonConfig.setIgnoreDefaultExcludes(false);

添加忽略字段

jsonConfig.setExcludes(new String[]{"positions"});


JSONObject json = JSONObject.fromObject(map, jsonConfig);
more ...