2

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

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

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

4

1 回答 1

2

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

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

于 2012-09-15T17:00:50.790 回答