Java SQL,可以在hibernate中不存在的表上插入
hibernate中的insert查询是否要求表存在。我的意思是当我有一个查询,在表中插入一些不存在的值。hibernate是否会给出异常,或者仅在更新完成时才会通过异常 我说的只是冬眠 在我看来,你能不能建议一张关于Hibernate的表格没有多大意义。数据库中是否存在表。如果不是,并且您在其上映射了一个实体,尝试Java SQL,可以在hibernate中不存在的表上插入,java,hibernate,orm,Java,Hibernate,Orm,hibernate中的insert查询是否要求表存在。我的意思是当我有一个查询,在表中插入一些不存在的值。hibernate是否会给出异常,或者仅在更新完成时才会通过异常 我说的只是冬眠 在我看来,你能不能建议一张关于Hibernate的表格没有多大意义。数据库中是否存在表。如果不是,并且您在其上映射了一个实体,尝试persist此实体将在flush时间失败,此时Hibernate将执行SQL插入,您将得到一个HibernateeException包装JDBC异常 如果这不能回答问题,请澄清,我
persist
此实体将在flush
时间失败,此时Hibernate将执行SQL插入,您将得到一个HibernateeException
包装JDBC异常
如果这不能回答问题,请澄清,我不理解您所指的更新部分。我想您是在问表是否丢失将休眠引发错误还是数据库引发错误
IIRC,我认为如果缺少表,Hibernate甚至不会初始化。当它遍历映射文件并尝试根据数据库中的数据类型预生成CRUD SQL语句时,您将收到一个错误。从逻辑上讲,它应该在插入时引发异常。如果您希望Hibernate在初始化时根据映射验证架构,您必须使用
hibernate.hbm2ddl.auto=validate
要求它这样做。稍后我将对此进行检查,但我不明白为什么Hibernate会使用数据库元数据来生成CRUD语句(所需的信息在映射IMHO中)。无论如何,这个问题还是很不清楚。