使用Hibernate,有没有办法找出这是否是第一次创建所有表的运行?
在此代码之后,是否有API(可能在SessionFactory
上)获得该状态:
sessionFactory = new Configuration().configure(new File("hibernate.cfq.xml")).buildSessionFactory();
对于我的用例,如果我知道创建了一个表就足够了 所以我可以做其他初始任务,例如将初始数据写入数据库。
编辑:这是hibernate.hbm2ddl
我正在使用:
<property name="hbm2ddl.auto">update</property>
答案 0 :(得分:1)
以下hibernate属性可以帮助您:
hibernate.hbm2ddl.import_files
此属性指定将在启动时运行的SQL脚本,您可以在其中轻松查询元数据并分支所需的任何业务逻辑。
值得注意的是,指定的脚本是在架构工具运行后执行的,因此如果您使用update
,则会执行基于实体模型的任何更改,否则将创建架构。重新使用create
或create-drop
。