Unique constraint not created in JPA(未在 JPA 中创建的唯一约束)
问题描述
我创建了以下实体 bean,并将两列指定为唯一的.现在我的问题是该表是在没有唯一约束的情况下创建的,并且日志中没有错误.有人有想法吗?
I have created the following entity bean, and specified two columns as being unique. Now my problem is that the table is created without the unique constraint, and no errors in the log. Does anyone have an idea?
@Entity
@Table(name = "cm_blockList", uniqueConstraints = @UniqueConstraint(columnNames = {"terminal", "blockType"}))
public class BlockList {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name="terminal")
private Terminal terminal;
@Enumerated(EnumType.STRING)
private BlockType blockType;
private String regEx;
}
推荐答案
好吧,我找到了另一种进行设计的方法.更多是因为设计的演变而不是解决方法.
然而,我从一位同事那里听说,他遇到了同样的问题,唯一约束仅在创建整个数据库时由休眠(我们正在运行 JBoss 4.3)创建.在现有数据库中创建新表时,它将不起作用.
所以在persistence.xml 中需要将hibernate.hbm2ddl.auto 设置为create-drop 以使其工作.不过我无法确认这一点.
Well, I found another way to make the design. More because the design evolved than a work around.
I heard however from a colleague, that had had the same problem, that unique constraint only are created by hibernate (we are running JBoss 4.3) when the entire database is created. It will not work when you create a new table in an existing database.
So in persistence.xml it is necessary to set hibernate.hbm2ddl.auto to create-drop to make it work. I can not confirm this though.
这篇关于未在 JPA 中创建的唯一约束的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:未在 JPA 中创建的唯一约束
基础教程推荐
- SQL 效率:WHERE IN 子查询 vs. JOIN 然后 GROUP 2021-01-01
- 无法解决整理冲突 2021-01-01
- 将 SQL Server DateTime 列迁移到 DateTimeOffset 2021-01-01
- 在 SQL 中连接多个表 2021-01-01
- 是否可以执行按位分组功能? 2021-01-01
- 如何使用 mysql.connector 禁用查询缓存 2022-01-01
- SSMS 中的权限问题:“对象 'extended_properties'、数据库 'mssqlsystem_resource'、... 错误 229)上的 SELECT 权限被拒绝" 2022-01-01
- SQL Server 实例在登录协商期间返回无效或不受支持的协议版本 2021-01-01
- 需要 MySQL 5.1 中的抽象触发器来更新审计日志 2021-01-01
- SQL:使用来自具有相同列名的两个表中的数据... 2021-01-01
