gpt4 book ai didi

scala - 在 Lift 和 CRUDify 中使用枚举字段

转载 作者:行者123 更新时间:2023-12-01 06:42:31 25 4
gpt4 key购买 nike

我已经使用 CRUDify 组合了一个小型 Lift 应用程序,以对某些数据库表执行基本的 CRUD 操作。

几列的类型为“CHAR (1 byte) ”,旨在存储“Y ”或“N ”的值。我的模型类定义了这些字段,如下例所示:

...
object isActive extends MappedEnum(this, YesNo) {
override def dbColumnName = "IS_ACTIVE"
override def displayName = "Active"
}
...

该类型“ YesNo”是一个 Scala 对象,定义如下:
object YesNo extends Enumeration {
val Y, N = Value
}

在由 CRUDify 自动生成的 Web 浏览器表单中,此类列确实显示为“ Y”和“ N”作为可用选项。但是,当您创建或编辑一行时……实际存储的是“ 1”或“ 0”!

显然,我只是错过了这里的某件事。我如何构造它,以便 CRUDify 允许用户从浏览器中的“ Y”或“ N”中进行选择, 在数据库中存储“ Y”或“ N”?

最佳答案

嗯……在 StackOverflow 上不是一个庞大的 Scala/Lift 社区!实际上,Lift 的“CRUDify”子组件可能在任何地方都没有太多社区。

无论如何,我最终通过订阅“liftweb”Google Groups 邮件列表找到了答案(有点)。显然,这是 CRUDify 框架中的一个已知限制。多年来一直如此,并不是任何人特别关心的限制,但它是众所周知的。

2009 年的一位开发人员试图通过创建他自己的 MappedField 自定义子类,并将其用作他的 Lift 模型类中的映射类型来找到解决此问题的方法。可以在以下位置找到 140 行的类以及简要描​​述它的电子邮件:

http://groups.google.com/group/liftweb/browse_frm/thread/34560f30fab299a7/cdca54c8e1486237?pli=1

我不确定这在 2009 年是否 100% 有效,当我在 2012 年尝试在这里使用它时遇到了很多问题(Scala 和 Lift 在过去三年中都发生了很大变化)。

我投入了少量时间来尝试使这个 MappedField 子类工作......然后获得批准选择 CRUDify 以外的方法。这个小应用程序的部分任务是学习一些关于使用 Lift 可以做什么和不可以做什么的事情,我认为我们现在已经完成了这部分任务。 :)

但是,如果此研究和示例代码稍后可以帮助其他人,那就太好了。

关于scala - 在 Lift 和 CRUDify 中使用枚举字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9118399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com