关于***.hbm.xml的说明

本文介绍Hibernate框架中多对一和一对多的映射方式,并通过具体示例解释如何配置关联关系,包括使用外键实现父子级联等。
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.bjpowernode.hibernate.Area" table="t_area">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<many-to-one name="parent" column="pid"/>                                 //外键和下面chidren的外键一样
<set name="children" lazy="extra" inverse="true">
<key column="pid"/>                                                                       //外键
<one-to-many class="com.bjpowernode.hibernate.Area"/>  //表示many的这端的类型是Area
</set>

</class>

</hibernate-mapping>

比如

1地区null
2广东1
3广州2
上面的

<many-to-one name="parent" column="pid"/>                                 //外键和下面chidren的外键一样
<set name="children" lazy="extra" inverse="true">
<key column="pid"/>                                                                       //外键
<one-to-many class="com.bjpowernode.hibernate.Area"/>  //表示many的这端的类型是Area
</set>


pid即是parent的外键,又是children的外键用来,理解这个很重要

StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder(); serviceRegistryBuilder.applySetting("hibernate.hbm2ddl.auto", "create"); serviceRegistryBuilder.applySetting("hibernate.dialect", "org.hibernate.dialect.MySQL8Dialect"); serviceRegistryBuilder.applySetting("hibernate.connection.driver_class", "com.mysql.cj.jdbc.Driver"); serviceRegistryBuilder.applySetting("hibernate.connection.url", "jdbc:mysql://192.168.55.56:3306/flow?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT"); serviceRegistryBuilder.applySetting("hibernate.connection.username", "root"); serviceRegistryBuilder.applySetting("hibernate.connection.password", "Cvicse@123"); serviceRegistryBuilder.applySetting("hibernate.show_sql", false); ServiceRegistry serviceRegistry = serviceRegistryBuilder.build(); MetadataSources metadataSources = new MetadataSources(serviceRegistry); metadataSources.addResource("com/cvicse/workflow/datastore/db/entity/ProcessInstanceEntity.hbm.xml") .addResource("com/cvicse/workflow/datastore/db/entity/ProcessRelevantDataEntity.hbm.xml") .addResource("com/cvicse/workflow/datastore/db/entity/ActivityInstanceEntity.hbm.xml") .addResource("com/cvicse/workflow/datastore/db/entity/ActivityRelevantDataEntity.hbm.xml") .addResource("com/cvicse/workflow/datastore/db/entity/WorkItemEntity.hbm.xml") .addResource("com/cvicse/workflow/datastore/db/entity/WorkItemRelevantDataEntity.hbm.xml") .addResource("com/cvicse/workflow/datastore/db/entity/ApplicationInstanceEntity.hbm.xml") .addResource("com/cvicse/workflow/datastore/db/entity/WHActivityInstanceEntity.hbm.xml") .addResource("com/cvicse/workflow/datastore/db/entity/WHActivityRelevantDataEntity.hbm.xml") .addResource("com/cvicse/workflow/datastore/db/entity/WHApplicationInstanceEntity.hbm.xml") .addResource("com/cvicse/workflow/datastore/db/entity/WHProcessInstanceEntity.hbm.xml") .addResource("com/cvicse/workflow/datastore/db/entity/WHProcessRelevantDataEntity.hbm.xml") .addResource("com/cvicse/workflow/datastore/db/entity/WHWorkItemEntity.hbm.xml") .addResource("com/cvicse/workflow/datastore/db/entity/WHWorkItemRelevantDataEntity.hbm.xml"); Metadata metadata = metadataSources.buildMetadata(); SchemaExport schemaExport = new SchemaExport(); schemaExport.create(EnumSet.of(TargetType.DATABASE), metadata); 修改为支持hibernate6.6.17 用SchemaManagementTool 实现
07-16
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值