迷途小书童Q 2015-03-09 01:37 采纳率: 0%
浏览 521

SSH框架,Hibernate配置问题

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 11:39
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Spring Boot项目中,你可以使用@Entity注解来定义你的实体类。这样就可以让Spring框架自动为你生成对应的数据库映射文件。

    首先,在你的实体类上添加@Entity注解:

    @Entity
    public class A {
        // 实体类的字段和方法...
    }
    

    然后,在你的配置文件(例如application.propertiesapplication.yml)中,可以使用spring.jpa.hibernate.ddl-auto属性来指定如何创建数据库表。

    如果你想要为A、B和C三个类生成一个名为"A"的表,并且它们是多态的关系,你可以在hibernate.cfg.xml配置文件中设置以下内容:

    <property name="entity_manager_default_schema">
      <value>default</value>
    </property>
    
    <hibernate-configuration>
      <session-factory>
        <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
        <property name="show_sql">true</property>
        <property name="cache_mode">NONE</property>
        <property name="hbm2ddl.auto">create-drop</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/your_database_name?useSSL=false</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">your_password</property>
        <property name="hibernate.current_session_context_class">thread</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <mapping resource="classpath:/A.hbm.xml"/>
        <mapping resource="classpath:/B.hbm.xml"/>
        <mapping resource="classpath:/C.hbm.xml"/>
      </session-factory>
    </hibernate-configuration>
    

    在这个配置文件中,我们设置了hbm2ddl.auto属性为create-drop,这表示当创建一个新的会话时,如果现有的数据库表不存在,就创建一个新的表;如果现有的数据库表存在,就更新现有表的内容。

    接着,你需要为每个实体类分别生成相应的HBM.xml文件。例如,生成A.HBM.xml文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
       <class name="A" table="A">
           <id name="id" column="ID">
               <generator class="native"/>
           </id>
           <!-- 其他字段... -->
       </class>
    </hibernate-mapping>
    

    现在,当你运行应用程序时,Spring框架会根据这些配置信息自动生成对应的数据库表。

    评论

报告相同问题?