0
@ManyToOne(fetch = FetchType.LAZY, cascade=CascadeType.PERSIST)
@JoinColumn(name="PRIVATE_CODE_ID", nullable = false)
public PrivateCode getPrivateCode() {
    return privateCode;
}

我正在使用旧版 MySQL 数据库架构,并希望将 PRIVATE_CODE_ID 指定为 int(15) 而不是默认的 int(11)。joincolumn中没有length=15等参数。有没有办法做到这一点,所以 JPA with hibernate 会生成正确的模式?

4

1 回答 1

4
  1. 如果您使用旧数据库,则不必指定架构详细信息 - 它们仅在使用 JPA 提供程序生成实际架构时使用

  2. 外键列定义应与该外键指向的主键一致。所以从正确映射实体@Id开始。PrivateCode

  3. 注解有一个columnDefinition属性:@JoinColumn

    @JoinColumn(name="PRIVATE_CODE_ID", columnDefinition="int(15)", nullable = false)
    
于 2012-05-18T11:22:31.677 回答