为了账号安全,请及时绑定邮箱和手机立即绑定

当用Hibernate生成数据库的表的时候, 可以自动创建外键吗?

如果可以 ,该怎么配置?

 

视频中时自己用sql语句添加的。


正在回答

1 回答

利用hbm2ddl自动创建数据库表时,会同时创建表的外键关联。配置如下。

<prop key="hibernate.hbm2ddl.auto">create</prop>

要取消外键的自动创建,,需要配置foreign-key="none"。

项目中关于hibernate ORM的配置可以用注解方式,也可以用配置文件方式。

用配置文件方式可以在xml相应实体类进行如下配置(注意其中的foreign-key="none"):

<class name="org.jbpm.identity.User" table="JBPM_ID_USER" discriminator-value="U">     <id name="id" column="ID_">       <generator class="native" />     </id>     <discriminator type="char" column="CLASS_" />     <property name="name" column="NAME_" />     <property name="email" column="EMAIL_" />     <property name="password" column="PASSWORD_" />     <set name="memberships" cascade="all">       <key column="USER_" />       <one-to-many class="org.jbpm.identity.Membership" />     </set>     <set name="permissions" cascade="all" table="JBPM_ID_PERMISSIONS">       <key column="ENTITY_" foreign-key="none" />       <element type="org.jbpm.identity.hibernate.PermissionUserType">         <column name="CLASS_" />         <column name="NAME_" />         <column name="ACTION_" />       </element>     </set>   </class>

用注解方式可以在相应类字段的get方法前配置注解如下:

@JoinColumn(name="parent_id") @ForeignKey( name = "none" )


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Hibernate初探之一对多映射
  • 参与学习       42171    人
  • 解答问题       295    个

Hibernate中一对多关联映射配置,以及cascade和inverse属性作用

进入课程

当用Hibernate生成数据库的表的时候, 可以自动创建外键吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信