изменения не отражаются при получении результата после вставки в спящий режим - PullRequest
0 голосов
/ 18 октября 2010

Я использую hibernate и spring mvc, когда я вставляю запись в БД и пытаюсь получить к ней доступ сразу после этого, тогда я не получаю результат. например если вставить запись для новой рег. Пользователь и логин в нем сразу после регистрации, тогда результирующий набор пуст. Я использую спящие шаблоны.

в чем может быть проблема и чего мне не хватает ...

ТНХ.

my [app] .servlet.xml

      <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost/dbb" />
    <property name="username" value="r123" />
    <property name="password" value="1234" />
  </bean>
  <bean id="hbSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="mappingResources">
      <list>
        <value>UserAttributes.hbm.xml</value>
        <value>BlessUser.hbm.xml</value>
        <value>SnsType.hbm.xml</value>
        <value>SnsUser.hbm.xml</value>
        <value>SnsAuthenticator.hbm.xml</value>
      </list>
    </property>
    <property name="hibernateProperties">
      <props>
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop>
        <prop key="hibernate.transaction.flush_before_completion">false</prop>
        <prop key="hibernate.transaction.auto_close_session">false</prop>
        <prop key="hibernate.show_sql">true</prop>
      </props>
    </property>
    <property name="dataSource">
      <ref bean="dataSource" />
    </property>
  </bean>

метод DAO

public void saveOrUpdate(E transientObject) {
    getHibernateTemplate().saveOrUpdate(transientObject);
}

HBM

<id name="Id" type="java.lang.Integer" column="bless_uid">
  <generator class="native" />
</id>

<property column="name" length="255" name="Name" not-null="false" type="java.lang.String" />

<property column="email" length="255" name="Email" not-null="false" type="java.lang.String" />

<property column="user_name" length="255" name="UserName" not-null="false"  type="java.lang.String" />

<property column="password" length="255" name="Password" not-null="false" type="java.lang.String" />

<set name="snsUser" lazy="false" cascade="all" table="sns_User">
  <key column="bless_uid" />
  <one-to-many class="com.utilami.model.SnsUser" />
</set>

1 Ответ

0 голосов
/ 03 апреля 2011

Это может быть проблема сброса, как предлагали другие, или проблема самой конфигурации базы данных. У вас MySQL настроен на автоматическую фиксацию ? Также может быть, что у вас длительная транзакция (Hibernate еще не завершил транзакцию, поэтому фиксация задерживается).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...