database - 使用 ORM 进行数据验证

标签 database validation grails orm mapping

我有一个 Grails 应用程序,它依赖于定期吸收的外部数据集。当数据进入数据库时​​,我们无法对其进行验证,因为接收数据的程序不是我们编写的。

偶尔,我们会在数据库中收到错误的数据。例如,数字是“5,5”而不是“5.5”。列上的数据类型(因为它们定义了表)是 VARCHAR,即使该字段应始终包含数字。我们的应用程序将此列映射到 ORM 层中的 FLOAT,因为这正是我们所期望的。

我想确保应用程序在获取新数据时不会崩溃,但我不确定如何做到。我是否应该将该列映射到 VARCHAR,然后转换为 transient FLOAT 列或类似的列?

最佳答案

短期内,是的,将 VARCHAR 映射到域对象中的 String 而不是数字类型可以解决问题。

在我看来,更好的解决方案是定期导入到不同的表中,并有一个仅将有效行移动到域表的过程。您可能还想将“坏”行放在某处,并通知某人手动修复它们。

关于database - 使用 ORM 进行数据验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12438637/

相关文章:

mysql - 在 MySQL 中构建查询来查找客户名称

sql - 主键也是星型模式中的外键。是好是坏?

djangorestauth电子邮件验证

jquery - 绝对位置的表单验证器给出错误但发布表单

spring - 身份验证时Auth0:NoSuchMethodError

grails - 在域类中初始化二维数组

sql-server - 如何对 SQL Server 查询进行基准测试?

mysql - 如何在 mysql 中插入带有斜杠而不是破折号的日期类型值?

c# - 防止 ASP.NET Web 应用程序上的 SQL 注入(inject)

rest - 调用服务时,更干净的方式在RestBuilder中使用多个选项