Sql server Hibernate hbm2ddl不会在SQLServer2008上创建外键

Sql server Hibernate hbm2ddl不会在SQLServer2008上创建外键,sql-server,hibernate,hbm2ddl,Sql Server,Hibernate,Hbm2ddl,我正在尝试通过hibernate hbm2ddl生成外键,包括: hibernate.hbm2ddl.auto=update 并使用以下映射: @OneToOne @ForeignKey(name="FK_address_nationality_id") private Nationality country; 它创建一个表,其中包含一个国家/地区列,但不创建外键。 为什么会这样?在使用字段定义注释而不是属性时,请确保使用的是字段访问类型 @Entity @Table

我正在尝试通过hibernate hbm2ddl生成外键,包括:

   hibernate.hbm2ddl.auto=update
并使用以下映射:

   @OneToOne
   @ForeignKey(name="FK_address_nationality_id")
   private Nationality country;
它创建一个表,其中包含一个国家/地区列,但不创建外键。
为什么会这样?

在使用字段定义注释而不是属性时,请确保使用的是字段访问类型

@Entity
@Table
@AccessType("field")

特别是如果您正在对使用属性访问器的类进行子分类。

尝试为create FK设置hibernate.hbm2ddl.auto=create一次,然后切换回update mode。我认为这与我遇到的另一个问题有关,它是将national列创建为varbinary…添加了关于列类型的另一个问题,