Hibernate 中的所有 API 都来自 1.4,因此不使用 java 泛型。
所以我想知道以下内容有多“安全”:(先决条件:名称列的数据类型为字符串,或者至少与字符串兼容)
@SuppressWarnings("unchecked")
public List<String> getAll() {
Query q = session.createQuery(
"select name from Customers");
return q.list();
}
来自 Queryi API (org.hibernate.Query.list()) javadoc。
最佳答案
只要您确定查询不“每行包含多个结果”,它就是安全的。 (我不熟悉查询,所以我不确定在这种情况下是否会发生这种情况。)如果一行确实包含多个结果,那么当您尝试访问它时,它会在运行时抛出 ClassCastException,因为该元素将是一个Object[] 对象而不是 String 对象。
关于java - Hibernate 查询 API 和 Java 1.5/泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/730192/