我有一个这样的实体:
data class Person(
@PrimaryKey(autoGenerate = true) val id: Long = 0,@ColumnInfo(name = "user_id",index = true) var userId: Long = 0,@ColumnInfo(name = "first_name") var firstName: String = "",@ColumnInfo(name = "mid_name") var midName: String = "",@ColumnInfo(name = "last_name") var lastName: String = ""
) {
public fun fullName(): String {
return "$firstName $midName $lastName"
}
}
我知道我可以为每个命名属性设置“ not null”属性。但就我而言,不需要填写所有名称属性,我只想在该实体保存到会议室数据库之前验证全名是否为空。
我正在练习使用MVVM框架,但是现在我不确定应该将验证放在哪里。活动/片段? ViewModel?仓库?还是直接在实体内部?
我认为也许应该在存储库中执行此操作,以便在将输入保存到数据库之前可以防止输入错误。但是,如果还有另一个用例需要在不同的存储库中验证同一事物,该怎么办?如果是这样,那么该代码将被复制到两个存储库中。
我曾经在ruby上编写过ruby,模型中有验证功能,如下所示:
# This is ruby on rails code
validate :name_validation
def name_validation
if first_name == "" && mid_name == "" && last_name == ""
errors.add(:name,"the name should not be totally blank")
end
end
我想知道是否有类似的方法可以验证实体中的属性,或者有更好的方法来解决此问题?
请帮我弄清楚。