我正在使用hibernate和spring mvc,当我在DB中插入记录,并尝试在那之后访问它,然后我没有得到结果。 例如 如果为新注册插入记录。用户并在注册后立即登录,然后结果集为空。 我正在使用hibernate模板。
可能是什么问题,我错过了什么......
THX。
我的[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>
答案 0 :(得分:0)
这可能是其他人建议的同花顺问题,或者可能是数据库配置本身的问题。你有MySQL configured to auto-commit吗?也可能是你有一个持久的事务(Hibernate尚未完成事务,因此提交被延迟)。