Tag: pojo

getter和setter执行额外的逻辑

我有一个Java类,它代表两个元素之间的相关性(典型的POJO): public class Correlation { private final String a; private final String b; private double correlation; public Correlation(String a, String b) { this.a = a; this.b = b; } public double getCorrelation() { return correlation; } public void setCorrelation(double correlation) { this.correlation = correlation; } } 如果a等于b,则遵循正确的相关逻辑,那么相关值应该总是1.我可以添加改变getter方法的逻辑(忽略a的可能空值的事实): public double getCorrelation() { if (a.equals(b)) { return […]

如何使用FreeMarker模板化嵌套的Pojos?

我正在调查使用FreeMarker编写EDI文件。 这些基本上是格式化(和validation)的电子发票。 我决定开始编写一个简单的例子,并坚持让它模板化’嵌套pojo’。 我的意思是一个包含POJO的POJO,其中两个都有我想要输出的数据。 我写了一个unit testing(自包含),由于未知原因而失败。 当我运行测试时,我得到以下exception: Expression user.getSub is undefined on line 1, column 24 in simple. The problematic instruction: ———- ==> ${user.getSub().user} [on line 1, column 22 in simple] ———- Java backtrace for programmers: ———- freemarker.core.InvalidReferenceException: Expression user.getSub is undefined on line 1, column 24 in simple. at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124) at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:134) example.TestFreeMarkerTemplating.testSimpleTemplate(TestFreeMarkerTemplating.java:23) 我在模板上尝试了很多变化,并没有成功。 […]

将数据存储在内存中

我在数据库中有”TABLE A” ,其中包含3列”COL 1″ , “COL 2” and “COL 3″ ,大约有1000000 (1百万)条记录。 对于这个表我已经映射了一个简单的POJO让我们说”ClassA”有3个实例变量”var1” , “var2” , “var3″并且还定义了set()和get()方法。 我的应用程序包含简单的JSP,Servlet和POJO,没有花哨的框架,也没有其他技术。 我真正想要的是,当我的应用程序第一次部署在Application Server上并且它收到的第一个请求时,只有那个请求(只有一次)我的Servlet将从TABLE A获得1百万条记录TABLE A ,使用这些记录映射ClassA并开始填充ClassA的对象并将它们保存在Vector或ArrayList ,因为您可能已经知道我的Vector/ArrayList现在将包含1百万个对象,每个对象代表一个record/tupple in “TableA” 。 好的,现在来到真实和困难的部分,我希望将Vector/ArrayList stored/persisted/added到应用程序上下文或VM或任何其他内存存储位置(实际上我不知道),以便每次我的JSP pages/Servlets访问内存中的对象时,每次都要获取数据而不是访问数据库。

JUnit测试POJO

我在一个项目上工作,我们必须为所有简单的bean(POJO)创建unit testing。 如果所有POJO都是getter和setter,那么为POJO创建unit testing是否有任何意义? 假设POJO在100%的时间内都能正常工作,这是一个安全的假设吗? 重复 – 应该测试@Entity Pojos吗? 也可以看看 在数据库而不是假存储库上运行测试是不好的做法吗? 是否有一个Javaunit testing框架可以自动测试getter和setter?

XStream或Simple

我需要决定使用哪一个。 我的情况非常简单。 我需要将一个简单的POJO / Bean转换为XML,然后再转换回来。 没什么特别的。 我正在寻找的一件事是它应该包括父属性。 如果它可以在超类型上工作,那将是最好的,它可以只是一个标记界面。 如果有人可以将这两者与缺点和专业人士进行比较,那么哪一个缺少哪一个。 我知道XStream也支持JSON,这是一个优点。 但是,如果我们将JSON放在一边, Simple看起来就更简单了。 在开发和社区方面,Simple的未来是什么? 我相信XStream很受欢迎,即使是“XStream”这个词,在SO上打了很multithreading。 谢谢。

将未知的XML文件导入pojo

有没有办法获取未知的架构xml文件并将值,标签等从xml文件转换为pojo? 我看了jaxb,看起来最好的方法就是你已经知道了xml架构。 所以基本上,我希望能够通过使用arraylist解析xml中的标记,将每个标记放入自己的对象中。 我还没有完全理解jaxb可以或者有更好的工具可以做到这一点,还是实现起来太难了?

命名查询中的Hibernate错误

我试图从当前日期在任何给定月份的第一天和最后一天之间的表中提取信息。 我收到运行时错误“命名查询中的错误:Department.byDate” 我正在向您提供我认为可能导致问题的代码,如果需要任何其他代码,请在评论中告诉我。 我的命名查询如下所示: @NamedQuery(name=”Department.byDate”, query=”select * from department where date >= :first AND date <= :last") 我在我的DAO中使用这个命名查询的方法如下所示: public List getRecords(Date dateFirst, Date dateLast){ Session session= sessionFactory.openSession(); session.beginTransaction(); Query query = session.getNamedQuery(“Department.byDate”); query.setDate(“first”, dateFirst); query.setDate(“last”, dateLast); List depList = (List)query.list(); session.getTransaction().commit(); session.close(); return depList; } 我获得这几个月的第一天和最后几天的方法如下: Calendar first = Calendar.getInstance(); first.set(Calendar.getInstance().get(Calendar.YEAR), Calendar.getInstance().get(Calendar.MONTH), Calendar.getInstance().getActualMinimum(Calendar.DAY_OF_MONTH)); Date dateFirst […]

序列化逻辑应该在实体还是其他类中

应该在何处放置对象序列化逻辑(字段到XML或JSON名称和值的映射)? 在每个实体对象内部或者只是与序列化有关的一组不同的类? 那个与这个问题有关的其他最佳实践? 例如: class Person { String name; } 有些人这样做: class Person { String name; public String toJson () { // build JSON, use ‘name’ field } } 但是,如果我们还需要XML(),toCSV(),toXYZ()保持这个方向将创建可怕的污染代码并打破单一责任原则,即使使用单个toJson方法,恕我直言也已经破坏了。 另一种选择,这就是我通常做的事情: interface Serializer { public String toJson (); } class PersonJsonSerializer implements Serializer { private Person p; public PersonJsonSerializer (Person p) { this.person = p; […]

Hibernate派生属性与xml映射

我有一个带有Revisions集的Detectable类,它是Hibernate管理的POJO。 我也使用hbm.xml文件映射我的实体。 当用户进入Detectable管理界面时,我希望他将Detectable数据看到一个表格中,该表格还包含最后一次Revision完成的表格。 但是,只有访问可检测项的详细信息页面才能获得完整的修订集。 我的机会是显示最后修订日期,该日期将作为每个Detectable实例的属性单独加载。 所以我有类似的东西: detectable.hbm.xml 这不起作用,当hibernate尝试执行公式中包含的查询时,我有一个SQL语法错误。 我在不同的地方看到过使用标准SQL或HQL可以访问这个属性,但是我用它们都失败了。 是否可以按日期顺序实现整个Revision实体(我的意思是最后一次修订)? 汇集您的想法!

编程POJO和Bean之间的区别

我有以下两个class。 我可以说第一个是POJO类,第二个是Bean类吗? 1)POJO类,因为它只有getter和setter方法,所有成员都声明为private public class POJO { private int id; private String name; public int getId() { return id; } public String getName() { return name; } public void setId() { this.id = id; } public void setName() { this.name = name; } } 2)Bean类 – 所有成员变量都是私有的,具有getter和setter并实现Serializable接口 public class Bean implements java.io.Serializable { private String […]