菜鸟码农qq 2019-02-14 17:07 采纳率: 0%
浏览 431

Hibernate查询打印出来不输数据库格式而是一堆数字,为什么,指定ID查询就正常

public void demo2(){
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
Customer customer = session.get(Customer.class, 1l); // 发送SQL语句
System.out.println(customer); // System.out.println(customer.getCust_name()这个正常
tx.commit();
session.close();
}

Hibernate: 
select
    customer0_.cust_id as cust_id1_0_0_,
    customer0_.cust_name as cust_nam2_0_0_,
    customer0_.cust_source as cust_sou3_0_0_,
    customer0_.cust_industry as cust_ind4_0_0_,
    customer0_.cust_level as cust_lev5_0_0_,
    customer0_.cust_phone as cust_pho6_0_0_,
    customer0_.cust_mobile as cust_mob7_0_0_ 
from
    cst_customer customer0_ 
where
    customer0_.cust_id=?

com.itheima.hibernate.day01.Customer@12260d8d

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 22:59
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在使用Hibernate时,如果你在查询过程中遇到的问题是输出的不是预期的格式,这可能是由于一些原因导致的。这里有几个可能的原因:

    1. 查询条件:确保你在查询中正确地指定了Customer.class, 1l等参数,并且这些值与实际的数据匹配。

    2. 类型转换:如果实体类的字段类型与数据库字段类型不同,可能会导致数据无法正确映射到数据库表中的列。例如,如果你将一个String类型的字段保存为整数,那么在查询时可能会出现问题。

    3. 序列化和反序列化问题:如果你正在处理对象或者数组数据,它们可能会被序列化或反序列化多次,导致数据丢失或者不一致。

    4. 缓存问题:如果Hibernate的缓存设置得当,它可能会忽略某些查询结果。检查Hibernate的配置文件,看看是否有关于缓存的设置。

    5. 连接池问题:如果你设置了多个Hibernate连接池,确保所有的连接都使用了相同的SessionFactory实例。否则,不同的连接池可能会返回不同的session实例,从而导致查询失败。

    为了解决上述问题,请尝试以下步骤:

    • 确保你对Customer.class有正确的引用。
    • 检查数据库字段类型与实体类字段类型的一致性。
    • 使用适当的类型转换方法来确保字段类型匹配。
    • 如果是对象操作,确保你的对象操作正确无误。
    • 检查Hibernate的缓存设置。
    • 确保所有的Hibernate连接池使用的是同一个SessionFactory实例。

    如果以上建议都无法解决问题,你需要提供更多的关于你的环境、使用的Hibernate版本以及具体的错误信息。这样我才能更具体地帮助你找到问题所在并进行修复。

    评论

报告相同问题?