【发布时间】:2011-03-08 20:31:12
【问题描述】:
我打算使用带有 AciveJDBC 的 play web 框架来实现持久性。活动 JDBC 的问题在于它需要检测。我的问题是,
是否需要重新启动服务器才能查看对需要检测的类所做的更改?
【问题讨论】:
标签: playframework instrumentation activejdbc
我打算使用带有 AciveJDBC 的 play web 框架来实现持久性。活动 JDBC 的问题在于它需要检测。我的问题是,
是否需要重新启动服务器才能查看对需要检测的类所做的更改?
【问题讨论】:
标签: playframework instrumentation activejdbc
joshua:这从未尝试过,但答案是否定的,您必须重新启动服务器才能对模型进行更改才能生效。但是,如果您练习真正的 TDD 并编写完全测试模型的测试,则不必重新启动。
致 Pere Villega:您的回答是正确的,Hibernate 确实是一个流行的框架,但它“成为一个伟大的工具”是一个见仁见智的问题,恕我直言,事实并非如此,因此我开发了 ActiveJDBC。
一个小事实:2009 年的原始版本的 ActiveJDBC 在应用程序启动后在内存中即时进行检测,这很棒,但由于某些容器的类加载器行为,这已被证明是不可靠的。
另外,我开发了一个类似于 Ruby on Rails 的 Java Web 框架:http://code.google.com/p/activeweb/,它与 ActiveJDBC 集成。目前它将重新编译/重新加载控制器,但不会重新编译/检测模型。不过,我计划在未来将此功能引入到框架中。
干杯,
伊戈尔
【讨论】:
作为免责声明,我从未尝试过您所说的。但根据我对 Play 工作原理的了解,这将取决于您将 ActiveJDBC 与 Play 的集成。
据我所知,没有用于该集成的现有模块。这意味着您将需要创建一些东西来将您的模型(基于 ActiveJDBC)插入到 Play 模型中。例如,类似于Siena 插件的作用。
一旦完成,无需额外更改 Play 只会使用 Eclipse 编译器重新编译 Java 类,但不会生成任何工具。为了实现该检测,您可能需要调整重新编译过程,以便它也生成检测。
所以,简短回答,默认情况下检测不起作用。
一个相关的问题:你真的需要 ActiveJDBC 吗? JPA/Hibernate(Play 中的默认设置)不会提供什么?我理解“活动记录”的吸引力 行为,但即使在 Ruby 社区中也有一些抱怨它的“魔力”。你确定JPA不够好?在使用 Play 时,使用它可以节省您的时间和麻烦,并且 Hibernate 是一个庞大的团队和丰富的 ORM 开发经验,这使其成为一个很棒的工具...
【讨论】: