2015-07-22 8 views
-1
@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; 
    } 

+1

Столбец 'STAFF_ID' -' CHAR (8) ', а не' VARCHAR (8) '. Является ли ваш 'String loginId' точно такими же 8 символами? – Roman

+0

STAFF_ID объявлен как CHAR (8) в моей DB оракула. – user1570656

+1

Считаете ли вы, что вопрос в форме вопроса? –

ответ

0

Проверьте базу данных, чтобы увидеть, если значение действительно существует в базе данных.

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

+0

Thx. Я проверил вручную. Значение присутствует в DB – user1570656

-1

Session.get(Class clazz, Serializable id)

Возвращения упорной экземпляр данного класса объекта с данным идентификатором , или нулевой, если не существует такого стойкий экземпляр. (Если экземпляр уже связан с сессией, что вернуться экземпляр. Этот метод никогда не возвращает неинициализированный экземпляр.)

Так проверьте, существует ли данные в базе данных или нет.

+0

Thx. Я проверил вручную. Значение присутствует в БД. – user1570656

+0

Любое исключение? И какую базу данных вы используете? –

+0

Нет исключений. Я использую oracle – user1570656

0

В настоящее время создается временный пользователь с ровно 8 символами, а затем пытается получить доступ к одному и тому же пользователю через спящий режим. Я смог взять запись.

  1. @Id @column (имя = "STAFF_ID", ColumnDefinition = "CHAR (8)") частная строка LoginID;

    Это определение моей колонки. Есть ли что-то, что мне нужно объявить?

0

Нашли что-нибудь интересное. Исправьте меня, если подход неправильный.

Поскольку мой столбец db объявлен как CHAR (8), для спящего режима, я должен всегда передавать 8 символов для получения результатов.

Итак, если ваш STAFF_ID - 3 символа, добавьте 5 пустых символов и перейдите в спящий режим, который будет извлекать вашу запись.

Любые мысли?

+0

Пожалуйста, обновите свой вопрос, а не отправляйте ответы. – Roman