Java 如何告诉hibernate使用';更新/删除时限制';
Hibernate在PostgreSQL中生成如下外键约束:Java 如何告诉hibernate使用';更新/删除时限制';,java,sql,database,hibernate,foreign-keys,Java,Sql,Database,Hibernate,Foreign Keys,Hibernate在PostgreSQL中生成如下外键约束: ADD CONSTRAINT fk4027e58ea8b36313 FOREIGN KEY (fk_responsible_person) REFERENCES employee (id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION; 我想要 ON UPDATE RESTRICT ON DELETE RESTRICT 我当前的注释: @M
ADD CONSTRAINT fk4027e58ea8b36313 FOREIGN KEY (fk_responsible_person)
REFERENCES employee (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION;
我想要
ON UPDATE RESTRICT ON DELETE RESTRICT
我当前的注释:
@ManyToOne(optional = true, fetch = FetchType.EAGER)
@JoinColumn(name = "fk_responsible_person", updatable = true, nullable = true)
public Employee getResponsiblePerson()
{
return m_responsiblePerson;
}
我必须使用什么样的配置/注释才能获得“restrict”而不是“no action”?为什么需要
restrict
约束?RESTRICT
和NO ACTION
之间唯一的区别是RESTRICT
不能被修改
。我以前使用MS SQL Server,那里的RESTRICT
意味着,只要另一个表有引用,就不可能删除员工。我不知道不同的是什么意思。请阅读第页。描述外键的部分。在PostgreSQL中,无操作
仍然意味着,只要存在对某个键的引用,就无法删除该键。defer
约束的功能是将对该约束的检查推迟到事务结束的功能。顺便说一句,MS SQL Server对删除时的无操作执行相同操作
-如果存在对已删除密钥的引用,则抛出引用完整性错误。ORACLE和任何遵循ANSI SQL标准的DBMS也是如此。好吧,谢谢你(认真地)教育我,我不知道无操作
与限制
基本相同。我总是天真地认为,不采取行动
意味着“不采取行动”。。。所以我想我现在很好。但回到最初的问题:如何使用hibernate注释控制操作?