Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带Hibernate的活动记录模式_Java_Spring_Hibernate_Orm - Fatal编程技术网

Java 带Hibernate的活动记录模式

Java 带Hibernate的活动记录模式,java,spring,hibernate,orm,Java,Spring,Hibernate,Orm,我正在使用SpringMVC+JSP+Hibernate开发一个相当简单的web应用程序。为了开始,我遵循了本教程: 这工作正常,但我担心代码的冗长。为了支持用户实体,我们还有UserDao、UserDaoImpl、UserService和userserviceinmpl。我知道,对于大型企业应用程序,您可能实际上需要这样做。但对于我的简单web应用程序来说,这是不必要的(也是不必要的)复杂性。我可以用Python更简单地实现这一切 那么,有没有办法让Hibernate使用活动记录设计模式?我

我正在使用SpringMVC+JSP+Hibernate开发一个相当简单的web应用程序。为了开始,我遵循了本教程:

这工作正常,但我担心代码的冗长。为了支持用户实体,我们还有UserDao、UserDaoImpl、UserService和userserviceinmpl。我知道,对于大型企业应用程序,您可能实际上需要这样做。但对于我的简单web应用程序来说,这是不必要的(也是不必要的)复杂性。我可以用Python更简单地实现这一切

那么,有没有办法让Hibernate使用活动记录设计模式?我希望做的事情是让用户从基类继承像get()这样的方法。所以你可以使用User.get(用户名)

我对使用不同的ORM休眠持开放态度;我刚开始这么做,因为这似乎是常见的选择。而且据说它与我熟悉的Python SQLAlchemy类似

我也对更多的开箱即用的解决方案持开放态度,也许是一个可以自动生成DAO类的IDE插件

任何建议,谢谢


Paul

看看springroo,它使用活动记录模式

或者(在看了roo之后)您可以自己构建它。您所需要的只是:

  • @可在实体上配置以启用注入(这也需要真正的AspectJ)

您可以使用它注入EntityManager或hibernateSession,我想您可能正在寻找它。因为您指的是Python,所以jOOQ可能比Hibernate更适合,因为它更以SQL为中心

Java中另一个流行的ActiveRecord实现是,据我所知,它提供了您正在通过插装寻找的方法。他们网站上的一个例子:

List<Person> people = Person.where("name = 'John'");
Person aJohn =  people.get(0);
String johnsLastName = aJohn.get("last_name");
List people=Person.where(“name='John'”);
Person aJohn=people.get(0);
字符串johnsLastName=aJohn.get(“姓氏”);
(当然,这个答案是有偏见的,因为我是jOOQ开发人员)

接口使模拟对象的测试更容易,我想如果你不打算使用模拟的话,你可以去掉它们

我有一个用于简单get/set的通用方法-youdon;除非涉及多个实体,否则不需要服务类别


为了进一步减少您编写的代码,请看一看a,尽管我想这可能有点过头了。

I don;我看不出这是如何回答这个问题的。问题是:“那么,有没有办法让Hibernate使用活动记录设计模式?”Roo是一个例子,说明了如何使用spring构建活动记录体系结构。大多数人学习良好的表单示例。你有没有向实体添加configuravble以启用其注入的示例?@NimChimpsky:启动roo shell,创建一个新项目,配置设置,让roo创建一个实体(谷歌搜索任何roo教程并遵循第一步),然后查看代码(包括roo生成的aspectj文件)-我不想显得不礼貌,但我在手机上写下了这篇文章(在爪哇岛度假),所以我只能写这些说明了。哇,roo看起来太棒了!我现在正在玩它。我想我可能不会在这个项目中使用它,但知道它很好。谢谢,谢谢,这是一个很好的方法,可以简化我现在拥有的东西,而无需进行重大更改。谢谢……我决定继续使用Hibernate,但它是g很高兴了解这些。jOOQ看起来是一个很酷的项目。顺便说一句,我在SQLAlchemy MS-SQL支持方面做了很多工作,所以我对您作为ORM开发人员的痛苦有了一些了解:-)@paj28:没有痛苦。这很有趣!我特别喜欢SQL Server,它是一个很棒的数据库!
 UserDao, UserDaoImpl, UserService and UserServiceImpl