使用Play 2.0进行Slick直接嵌入工作吗



为了让您的眼睛和思想不受源代码堆积如山的影响,我单独介绍了我的用例。

我正在使用Slick的直接嵌入从数据库中提取。这本身效果很好。

当我试图从Play 2.0源调用相同的方法时,比如应用程序控制器,刷新时浏览器中会出现ClassNotFoundException。

有问题的类是直接嵌入的表模式。同样,当Play不在画面中时,一切都会正常工作。

我读到直接嵌入仍然是一个非常实验性的特性(尽管从稳定的方法来看,人们不得不想知道为什么他们没有从一开始就取消直接的提升嵌入),所以我认为这可能是它不起作用的原因。

没有意义的是,我从Play调用的代码不是直接到数据库源的,它首先通过另一个类。具有数据库源的项目是Play项目的子项目。因此,由于没有直接链接,并且类确实进行了编译,所以它应该可以工作。

有没有人经历过这种情况来确认它不会起作用?

我目前正在将代码切换到提升嵌入,看看这是否有效。

我将代码切换到提升嵌入方法,它在Play中运行良好。

注:

我放弃了Slick,而选择了Squeryl来做这个项目(可能还有未来的任何项目),因为我发现这种提升的方法非常反DRY,而且在视觉上没有吸引力。

在像Scala这样强大的语言中,没有理由像在Slick中那样实现提升嵌入的功能。再加上虚假的导入错误,很可能是由Slick包中的多个文件命名相同引起的,在生产中使用Slick会产生一种恐惧感。

国际海事组织目前取消的方法应该被完全抛弃,而嵌入的方法成为未来努力的唯一主题。

最新更新