【问题标题】:Hibernate session.get() is always returning nullHibernate session.get() 总是返回 null
【发布时间】:2015-07-22 13:18:18
【问题描述】:
@Entity
@Table(name = "T019_STAFF_PROFILE")
public class UserDetails implements Serializable
{
    private static final long   serialVersionUID    = -723583058586873479L;

    @Id
    @Column(name = "STAFF_ID", columnDefinition="CHAR(8)")
    private String              loginId;

    @Column(name = "PASSWORD", columnDefinition="CHAR(8)")
    private String              password;

    @Column(name = "FIRST_NAM")
    private String              firstName;

    @Column(name = "LAST_NAM")
    private String              lastName;

    @Column(name = "BUS_OG_CD" , columnDefinition="CHAR(3)")
    private String              profile;

public UserDetails getLoginDetails(String loginId)
    {
        UserDetails object =(UserDetails)sessionFactory.getCurrentSession().get(UserDetails.class, loginId);
        return object;
    }

【问题讨论】:

  • STAFF_ID 列是 CHAR(8),而不是 VARCHAR(8)。你的String loginId是不是一模一样的8个符号?
  • STAFF_ID 在我的 oracle DB 中被声明为 CHAR (8)。
  • 你考虑写一个问题正文吗?

标签: java hibernate


【解决方案1】:

检查数据库以查看该值是否确实存在于数据库中。

SELECT * FROM T019_STAFF_PROFILE WHERE STAFF_ID = <the value of **loginId**>

【讨论】:

    【解决方案2】:

    暂时,创建了一个恰好有 8 个字符的临时用户,然后尝试通过休眠访问同一用户。我能够获取记录。

    1. @Id @Column(name = "STAFF_ID", columnDefinition="CHAR(8)") 私有字符串 loginId;

      这是我的列定义。有什么需要申报的吗?

    【讨论】:

      【解决方案3】:

      发现了一些有趣的东西。如果方法错误,请纠正我。

      由于我的 db 列被声明为 CHAR(8),要休眠,我应该始终传递 8 个字符来获取结果。

      所以,如果您的 STAFF_ID 是 3 个字符,则附加 5 个空字符并将其传递给休眠,它将获取您的记录。

      有什么想法吗?

      【讨论】:

      • 请更新您的问题,而不是发布答案。
      【解决方案4】:

      Session.get(Class clazz, Serializable id)

      返回给定实体类的持久实例 给定标识符,如果没有这样的持久实例,则返回 null。 (如果 实例已经与会话关联,返回 实例。此方法从不返回未初始化的实例。)

      因此请检查您的数据库中是否存在数据。

      【讨论】:

      • 有什么例外吗?您使用的是哪个数据库?
      • 没有例外。我正在使用甲骨文
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      • 2016-11-02
      • 2014-05-06
      • 2012-06-05
      • 2014-05-30
      • 2014-02-23
      • 2017-10-12
      相关资源
      最近更新 更多