java - Hibernate 查询 API 和 Java 1.5/泛型

标签 java hibernate generics

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。

"Return the query results as a List. If the query contains multiple results pre row, the results are returned in an instance of Object[]. "

最佳答案

只要您确定查询不“每行包含多个结果”,它就是安全的。 (我不熟悉查询,所以我不确定在这种情况下是否会发生这种情况。)如果一行确实包含多个结果,那么当您尝试访问它时,它会在运行时抛出 ClassCastException,因为该元素将是一个Object[] 对象而不是 String 对象。

关于java - Hibernate 查询 API 和 Java 1.5/泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/730192/

相关文章:

java - 接收数据作为 JSON 对象

java - 如何关闭(禁用)jdk.event.security 日志?

java - 无法让 hibernate 在 Spring Web Flow 项目中工作

c# - 使用 as 关键字与 C# 中的泛型类型冲突的编译时行为

vb.net - 抽象类/方法,如何用C#-> VB.NET

java - Bukkit 等待/延迟帮助(Bukkit Runnable)

java - 将子项添加到现有父项时的 Hibernate 一对多完整性约束

带有 Hibernate 的 SPRING JPA 更新所有实体实例,即使使用一个实体调用保存也是如此

java - 使用 Hibernate 用 transient 对象更新持久对象

c# - 默认表达式