Я строю свое первое приложение Java с Hibernate и немного проблем с сеансами Hibernate.Hibernate несколько сеансов с разными пользователями
Моя проблема: Когда второй пользователь регистрируется в приложении, он переопределяет сеанс для первого пользователя -> оба работают на втором сеансе. Хотя оба пользователя создать новый сеанс при входе в
Мой код:.
первый я получить текущий пользователь при входе пользователя в систему (LoginDetail.java):
userBean = UserProxy.getInstance().getElementByUser(userBean.getUser(), userBean.getPassword());
UserProxy.java:
public static synchronized UserProxy getInstance() {
if (instance == null) {
instance = new UserProxy();
}
return instance;
}
public UserBean getElementByUser(String user, String password) {
try {
Iterator<SUsers> iter = s.createQuery("from SUsers where user = '" + user + "' and password = '" + password + "'").list().iterator();
while (iter.hasNext()) {
userDB = iter.next();
currentUser = convertClassToBean(userDB);
log.debug("aktuell ausgewaehlter char: " + userDB.getId());
}
} catch (Exception e) {
log.error(e);
e.printStackTrace();
}
currentUser = convertClassToBean(userDB);
return currentUser;
}
Мои HibernateUtil.java:
public static final ThreadLocal<Session> session = new ThreadLocal<Session>();
public static Session currentSession() {
Session s = session.get();
// Open a new Session, if this Thread has none yet
if (s == null) {
s = sessionFactory.openSession();
session.set(s);
}
return s;
}
и hibernate.cfg.xml:
<property name="connection.pool_size">1</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="current_session_context_class">thread</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<property name="hibernate.connection.isolation">2</property>
Может кто-нибудь дать мне подсказку, как решить эту проблему?
Эй, заседание вы говорите about.I угадать должны быть какие-либо проблемы, возвращающиеся же сеанс спящего режима без учета того, какой пользователь зарегистрирован в –
Текущий пользователь хранится в сеансе. Таким образом я решаю, что показывать текущего пользователя. Поэтому в тот момент, когда второй пользователь регистрируется первым пользователем, он находится в одном сеансе и видит все от второго пользователя. – Markus