我有一张带有继承自类媒体的类CD:
CD:
@Entity
public class CD extends Media {
...
}
媒体:
@Entity(name = "media")
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Media extends PersistenceId<Long> {
...
}
JPA自动生成外键名,我想用我想要的名称覆盖它:
03-10 18:16:58.174主要调试org.hibernate.SQL -更改表cd添加约束FK_ehd468g2cptgh6bq6sxe75xlf外键(id)引用媒体(id)
怎么做?我试过:
@Entity
@AssociationOverride(
name = "id",
foreignKey = @ForeignKey(name = "fk_cd_media")
)
public class CD extends Media {
...
}
和
@Entity
@PrimaryKeyJoinColumn(foreignKey=@ForeignKey(name = "fk_cd_media"))
public class CD extends Media {
...
}
但不起作用。
下面是生成的create表sql:
CREATE TABLE `cd` (
`artist` varchar(255) DEFAULT NULL,
`year` int(11) NOT NULL,
`id` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
CONSTRAINT `FK_ehd468g2cptgh6bq6sxe75xlf` FOREIGN KEY (`id`) REFERENCES `media` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
我想:
CONSTRAINT `fk_cd_media` FOREIGN KEY (`id`) REFERENCES `media` (`id`)
发布于 2016-03-16 13:33:13
你的第二次尝试就是要走的路:
@Entity
@PrimaryKeyJoinColumn(foreignKey=@ForeignKey(name = "fk_cd_media"))
public class CD extends Media {
...
}
问题是你面临着一个Hibernate错误:https://hibernate.atlassian.net/browse/HHH-10352
编辑:问题解决了:
修正版本/s: 5.0.10、5.2.1、5.1.1
https://stackoverflow.com/questions/32924987
复制相似问题