不幸的是,问题的主题似乎有点模糊,但我不知道更好。所以,我正在使用Hibernate,PostGreSQL和Spring制作一个项目。根据功能,数据库可分为3个部分。考虑一个简单的基于产品的应用程序,如用户(U),产品(P),消息(M)。我有一个数据库,我已经创建了表和定义的关系。
由于用户可能拥有一对多产品,因此2个表在数据库中连接。现在考虑一种情况,当用户第一次在网页上注册时,他/她输入要注册的信息(名字,姓氏,电子邮件等)。当我试图用hibernate保存它时,它是否会创建连接到用户类的所有表的实例并尝试保存信息(将Products中的信息保留为null)或其他什么?如果是,那么我如何在数据库/程序逻辑中将其分开。
我希望我的问题至少有点清楚。谢谢。
答案 0 :(得分:1)
你可以告诉Hibernate为你创建表格,但这不是魔术或自动发生的。它通常发生在Hibernate与数据库建立第一个连接时(通常在配置阶段,当Hibernate检查数据库是否与您定义的实体匹配时)。
因此,如果启用此功能,则可以在开始加载/保留对象之前创建表。
或者,您可以使用SchemaExport
创建此处所述的DDL文件,例如:Generate an SQL DB creation script with Hibernate 4
这样,您可以使用管理工具来创建表,Hibernate将使用已经存在的表(当数据库模式与代码中的实体不匹配时,会失败并出现错误。)