是否可以在没有外键的情况下使用 Hibernate

czu*_*upe 2 hibernate foreign-keys liferay

一个简单的问题,如果有人可能有此主题的经验:

是否可以在表中使用没有外键的 Hibernate(具有完整功能)...?

就我而言,我需要这个,因为我想要reverse engineering a liferay database和实体,而在liferay中,外键只会搞乱事情(Liferay不支持外键),所以如果我可以关闭外键更改,这将是一个很好的解决方案在某些休眠参数中(我知道它不起作用,所以可能需要一些解决方法)

JB *_*zet 7

Hibernate 根本不关心外键。不管你有没有,都没关系。假设你有

@Entity
public class Product {
    //...
    @ManyToOne
    @JoinColumn(name = "category_id")
    private Category category;
}
Run Code Online (Sandbox Code Playgroud)

然后,只要 procuct.category_id 的每个值实际上引用现有的category.id(或者为 null),那么一切都会正常工作。当然,通过设置外键约束来实际强制执行这一点是一个好主意,但 Hibernate 不需要它。