类:class A{},class B extends class A{} , class C extends class A{},
class D{
private Set as;
...
getter setter....
}
这种情况D.hbm.xml怎么配置,里面有一多态,但是配置文件中class属性对应的是具体的表啊
SSH框架,Hibernate配置问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
你知我知皆知 2024-08-03 11:39关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
在Spring Boot项目中,你可以使用
@Entity注解来定义你的实体类。这样就可以让Spring框架自动为你生成对应的数据库映射文件。首先,在你的实体类上添加
@Entity注解:@Entity public class A { // 实体类的字段和方法... }然后,在你的配置文件(例如
application.properties或application.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框架会根据这些配置信息自动生成对应的数据库表。
解决 无用评论 打赏 举报