<property name="hibernate.hbm2ddl.auto">update</property>  也配置了
tomcat也没报告异常
20:24:30,921  INFO HbmBinder:348 - Mapping class: com.ainx.model.Person -> t_person
20:24:30,953 DEBUG HbmBinder:1335 - Mapped property: id -> id
20:24:30,984 DEBUG HbmBinder:1335 - Mapped property: username -> username
20:24:30,984 DEBUG HbmBinder:1335 - Mapped property: sex -> sex
20:24:30,984 DEBUG HbmBinder:1335 - Mapped property: address -> address
20:24:30,984 DEBUG HbmBinder:1335 - Mapped property: duty -> duty
20:24:30,984 DEBUG HbmBinder:1335 - Mapped property: phone -> phone <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>           

<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>

<!-- 配置事务的传播特性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="modify*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>

<!-- 那些类的哪些方法参与事务 -->
<aop:config>
     <aop:pointcut id="allManagerMethod" expression="execution (* com.ainx.service.*.*(..))"/>
     <aop:advisor  pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
    </aop:config>  这些都是正确的,为什么在mysql中查不都t_person这个表呢

解决方案 »

  1.   

    看你具体的配置信息 
    一般来说,只要配置正确,mysql中只要建个数据库 服务启动的时候就会自动建表你是不是哪里有问题
      

  2.   

    但是tomcat并没有报任何错误出来,
    21:26:15,781 DEBUG AbstractEntityPersister:2936 - Static SQL for entity: com.ainx.model.Person
    21:26:15,781 DEBUG AbstractEntityPersister:2941 -  Version select: select id from t_person where id =?
    21:26:15,781 DEBUG AbstractEntityPersister:2944 -  Snapshot select: select person_.id, person_.username as username0_, person_.sex as sex0_, person_.address as address0_, person_.duty as duty0_, person_.phone as phone0_ from t_person person_ where person_.id=?
    21:26:15,781 DEBUG AbstractEntityPersister:2947 -  Insert 0: insert into t_person (username, sex, address, duty, phone, id) values (?, ?, ?, ?, ?, ?)
    21:26:15,781 DEBUG AbstractEntityPersister:2948 -  Update 0: update t_person set username=?, sex=?, address=?, duty=?, phone=? where id=?
    21:26:15,796 DEBUG AbstractEntityPersister:2949 -  Delete 0: delete from t_person where id=?这就是tomcat的show_sql语句,这些都出来了,就是没有表,不知道还需要配置什么????
      

  3.   

    hibernate配置里有个选项:hbm2ddl ,把它设为create
      

  4.   

    ps:hibernate.hbm2ddl.auto参数:validate | update | create | create-drop ,主要用于自动创建、更新、验证数据库表结构。如果不是此方面的需求建议set value="none"。 create: 
    每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。create-drop : 
    每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。update: 
    最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。validate : 
    每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。
     注:
    1.请慎重使用此参数,没必要就不要随便用。如果要用尽量使用update 
    2.如果发现数据库表丢失,请检查hibernate.hbm2ddl.auto的配置 因为你配置的是update数据库里面本来就没有表,也是不会自动创建的,建议第一次配置create运行生成表结构之后在将配置改成update
      

  5.   

    AbstractEntityPersister:2936 - Static SQL for entity: com.ainx.model.Person
    11:34:22,703 DEBUG AbstractEntityPersister:2941 -  Version select: select id from t_person where id =?
    11:34:22,703 DEBUG AbstractEntityPersister:2944 -  Snapshot select: select person_.id, person_.username as username0_, person_.sex as sex0_, person_.address as address0_, person_.duty as duty0_, person_.phone as phone0_ from t_person person_ where person_.id=?
    11:34:22,703 DEBUG AbstractEntityPersister:2947 -  Insert 0: insert into t_person (username, sex, address, duty, phone, id) values (?, ?, ?, ?, ?, ?)
    11:34:22,703 DEBUG AbstractEntityPersister:2948 -  Update 0: update t_person set username=?, sex=?, address=?, duty=?, phone=? where id=?
    11:34:22,703 DEBUG AbstractEntityPersister:2949 -  Delete 0: delete from t_person where id=?11:34:22,828  INFO SessionFactoryObjectFactory:105 - Not binding factory to JNDI, no JNDI name configured
    11:34:22,828 DEBUG SessionFactoryImpl:378 - instantiated session factory
    11:34:22,843  INFO SchemaUpdate:155 - Running hbm2ddl schema update
    11:34:22,843  INFO SchemaUpdate:167 - fetching database metadata
    11:34:22,859  INFO SchemaUpdate:179 - updating schema
    11:34:22,859 DEBUG Configuration:1211 - processing extends queue
    11:34:22,859 DEBUG Configuration:1215 - processing collection mappings
    11:34:22,859 DEBUG Configuration:1226 - processing native query and ResultSetMapping mappings
    11:34:22,859 DEBUG Configuration:1234 - processing association property references
    11:34:22,859 DEBUG Configuration:1256 - processing foreign key constraints
    11:34:22,875  INFO DatabaseMetadata:119 - table not found: t_person
    tomcat说table没有发现,前面已经有过增删改查了,为什么还不能发现表呢,搞不懂了??????
      

  6.   

    因为你配置的是update数据库里面本来就没有表,也是不会自动创建的,建议第一次配置create运行生成表结构之后在将配置改成update对 ,我最早也是如你所说的,update改成create,是不能行,后来看了网上说要先drop database 数据库名,再create database 数据库名,然后再用create,以后再用update,就行了,呵呵