java - JPA:@OneToOne 使用随机生成的名称创建隐式唯一约束。有什么方法可以使用注释在代码中指定该名称吗?

标签 java hibernate jpa constraints

在 Java 类中,我有这个属性

@OneToOne(optional = false, fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
private MyPropertyClass myProperty;

这不仅创建了外键约束,还创建了唯一约束。这是 Hibernate DDL 架构输出:

Hibernate: create table [...]
Hibernate: alter table [...] add constraint UK_nk1hqjkd7ln1f9a2pju1yy8ay  unique (myProperty)

是否有任何方法来指定唯一约束的名称?

最佳答案

请在类级别尝试@Table注解的uniqueConstraints属性。

@Table( name ="tablename " , uniqueConstraints={
       @UniqueConstraint(name="myconst", columnNames={"myProp"})
   })

public class MyEntity {

@OneToOne(fetch = FetchType.EAGER, cascade =     CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name="myProp")
private MyPropertyClass myProperty;

}

关于java - JPA:@OneToOne 使用随机生成的名称创建隐式唯一约束。有什么方法可以使用注释在代码中指定该名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31736342/

相关文章:

java - 在android中绘制路径?

java - 我怎样才能知道 Selenium WebDriver 正在等待什么?

java - 为什么要在 hibernate 或 spring 中使用 POJO 类?

mysql - jpa/spring/hibernate中的简单乐观锁问题

java - JPA:如何将实体与关系属性关联起来?

java - android.os.NetworkOnMainThreadException 引起的致命异常

java - Spring Boot 项目中的 application.properties 文件在哪里?

java - 引用 transient 实体时出现 Hibernate TransientObjectException

sql - JPA Query - 位置参数中的 sql 注入(inject) jpa native 查询

java - Glassfish 在部署时找不到 JNDI 数据源