在 MySQL 数据库中手动创建行而不是通过 Hibernate 来安全吗?

Would it be safe to manually create rows in a MySQL database rather than doing it via Hibernate?

我们正在迁移一个使用常规 SQL 查询的旧应用程序到数据库中的 read/write 数据。对于新系统,我们使用 Grails/Hibernate 来存储我们的数据。

我不太熟悉Hibernate 是如何存储东西的,所以我不愿意做任何太高级的事情。但是我们的另一个开发人员(他也不知道 Hibernate,并且可以说对现代开发实践知之甚少)真的想使用脚本将一组表映射到另一组表。

所以我的问题是:您认为 "safe" 通过一些脚本和 SQL 创建行,还是利用 Java 代码来创建和创建行更好?改为编写域对象?我知道这与外键有关(我不太了解),因此可能很难让不同的行彼此指向。

您有点需要知道自己在做什么,但总的来说,用 SQL 填充数据库是一件好事,也是一种常见做法。人们通常需要从一个数据库中导出数据并将其导入到另一个数据库中,这通常是使用 SQL 脚本完成的。

"safe" 这个词太宽泛了。

I know there is something to do with foreign keys, (which I don't know a whole lot about,)

你的情况,一点都不安全!

如果您有表之间的关系,那么值得对 Grails 域进行相应的编码,属性 也是如此。

还有其他场景我们需要通过运行脚本手动插入数据,在这种情况下我们首先要确保没有违反数据库约束。

只要没有违规,就是安全的。

无论是否手动插入数据,Hibernate 都会将数据映射到相应的域。