gpt4 book ai didi

java - 为什么hibernate的get(classname,index)返回一个对象而不是 "classname"实例?

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:58 25 4
gpt4 key购买 nike

我知道“Object”是所有对象的父类(super class),但为什么 Hibernate 不直接返回类型“classname”?

为什么 Hibernate ORM 让我们进行强制转换?

特别是,我读到 Hibernate 返回一个“代理类”,因此可以使用延迟加载来节省内存(和时间),如果我们明确地对“真实”类(而不是代理)进行强制转换,我们如何才能获得“代理类”???

我的意思是,如果我有一个 Country 类:

public class Country {

private int id;
private String name;

public int getId() {
return id;
}

public String getName() {
return name;
}

使用 Hibernate 我会:

Country country = (Country) session.get(Country.class, 1);

如果我刚刚向国家/地区进行了转换,我如何才能获得“代理”?

最佳答案

转换不是将某种类型的对象转换为不同类型的对象的运行时过程。

强制转换只是建议编译器返回的对象实际上可以被视为更具体的对象(就像您的情况一样)。这样您就可以使用更详细的方法/api。

一旦代码被编译并运行,所有信息都将过时。

关于java - 为什么hibernate的get(classname,index)返回一个对象而不是 "classname"实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46390274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com