[英]Hibernate to execute multiple native sql statements
How can I execute Multiple SQL statements in a single sql query using hibernate native sql. 如何使用休眠本机sql在单个sql查询中执行多个SQL语句。
String sql = "SELECT * FROM user; SELECT * FROM product;";
UserVO valueObject = new UserVO();
databaseObject.select(sql, valueObject);
Database Object 数据库对象
public List select(String sql, Object valueObject) throws Exception {
Session session = Entitlement.getSessionFactory().openSession();
session.beginTransaction();
List list = session.createSQLQuery(sql).setProperties(valueObject).list();
session.close();
return list;
}
Use union to form a query which has same returning data (Select EMPLOYEEID as id, EMPLOYEE_NAME as name, "EMPOYEE" as type) UNION (SELECT PRODUCTID as id, Product_NAME as name, "PRODUCT" as type) 使用联合来形成具有相同返回数据的查询(选择EMPLOYEEID作为ID,EMPLOYEE_NAME作为名称,“ EMPOYEE”作为类型)UNION(选择PRODUCTID作为ID,选择Product_NAME作为名称,选择“ PRODUCT”作为类型)
form an Entity to hold it 组建一个实体来持有它
class EntityDetail {
String id;
String name;
String type;
}
I have added an additional column value type to simply identify from which table row is coming from. 我添加了一个附加的列值类型,以简单地标识来自哪个表行。 And yes you will need to form a proper Entity with all valid annotations the above Entity is just for example. 是的,您将需要使用所有有效的注释来形成一个适当的实体,上述实体仅作为示例。
just a lateral approach. 只是横向方法。
public List<List<Object[]>> execute(String sqls, Object valueObject) throws Exception {
String[] queries = sqls.split(";");
List<List<Object[]>> result = new ArrayList<>();
for(int i=0; i<queries.length; i++) {
result.add(this.select(queries[i], valueObject));
}
return result;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.