有没有人有任何Java类可能看起来像POJO,EJB和EJB 3的例子?我正在尝试了解这些Java技术,但遇到了麻烦.我希望如果我能看到这三者的实现是什么样子会有所帮助.
我有一些第三方罐子的POJO,我们不能直接向客户透露.
ThirdPartyPojo.java
public class ThirdPartyPojo implements java.io.Serializable {
private String name;
private String ssid;
private Integer id;
//public setters and getters
}
Run Code Online (Sandbox Code Playgroud)
上面的类是我们正在使用的第三方jar的一部分,如下所示.
ThirdPartyPojo result = someDao.getData(String id);
Run Code Online (Sandbox Code Playgroud)
现在我们的计划是ThirdPartyPojo第三方jar的一部分,我们不能ThirdPartyPojo直接向客户发送结果类型.我们想要创建自己的pojo,它将具有与ThirdPartyPojo.java类相同的属性.我们必须将ThirdPartyPojo.java中的数据设置为OurOwnPojo.java并返回,如下所示.
public OurOwnPojo getData(String id){
ThirdPartyPojo result = someDao.getData(String id)
OurOwnPojo response = new OurOwnPojo(result);
return response;
//Now we have to populate above `result` into **OurOwnPojo** and return the same.
}
Run Code Online (Sandbox Code Playgroud)
现在我想知道是否有具有相同性质的最佳方式OurOwnPojo.java是ThirdPartyPojo.java和填充数据ThirdPartyPojo.java来OurOwnPojo.java并返回相同?
public class OurOwnPojo implements …Run Code Online (Sandbox Code Playgroud) 字符串容易受到密码值的影响.我注意到Vaadin PasswordField操纵密码为String.
以下是默认构造函数PasswordField,
public PasswordField() {
setValue("");
}
Run Code Online (Sandbox Code Playgroud)
我的问题:
PasswordField在Vaadin 使用是否安全?我有一个VO的arraylist.这些对象具有许多属性和相应的get/set方法.我想根据我将在运行时获得的属性对此数组列表进行排序.让我详细解释一下.我的VO是这样的
public class Employee {
String name;
String id;
private String getName() {
return name;
}
private String getId() {
return id;
}
}
Run Code Online (Sandbox Code Playgroud)
我将在运行时获取一个字符串'sortType',它可以是'id'或'name'.我想根据字符串的值对列表进行排序.
我试图一起使用比较器和反射,但没有运气.可能是我没有正确使用它.我不想使用if循环并创建新的比较器类.还有其他想法吗?
try catch应该在新类中.这是工作代码.如果你想为比较器使用一个单独的类,请在@ Bohemian的评论中找到它.
String sortType = "name"; // determined at runtime
Collections.sort(results, new Comparator<Employee>() {
public int compare(Employee c1, Employee c2) {
try{
Method m = c1.getClass().getMethod("get" + StringUtils.capitalize(sortType));
String s1 = (String)m.invoke(c1);
String s2 = (String)m.invoke(c2);
return s1.compareTo(s2);
}
catch (Exception e) {
return 0;
}
}
});
Run Code Online (Sandbox Code Playgroud) 根据我在互联网上找到的定义,JavaBean是一个满足以下条件的Java类:
我想知道的是,如果我将方法添加到Javabean中,我们仍然可以将其称为Javabean吗?
例如,我们可以说下面的类是JavaBean吗?
public class Person implements Serializable {
private String name;
public Person(){}
public String getName(){...}
public void setName(String name){...}
public void sayHello(){}
}
Run Code Online (Sandbox Code Playgroud) 我有2个实体 - 电影和演员 - 有M:N的关系.在为这些实体设计DTO对象时,我不确定什么是正确的方法.
电影
@Entity
@Table(name = "Movies")
public class Movie extends AbstractBusinessObject {
private String name;
private String short_info;
@ManyToMany
private Map<String, Actor> cast;
}
Run Code Online (Sandbox Code Playgroud)
演员
@Entity
@Table(name = "Actors")
public class Actor extends Person{
private String name;
@ManyToMany(mappedBy = "cast")
private Set<Movie> movies;
}
Run Code Online (Sandbox Code Playgroud)
现在关于DTO:我遇到了两种不同的方式来处理1:N和M:N关系.
仅保存ID:
public class MovieDto {
private String name;
private String short_info;
// Long represents Actor's ID
private Map<String, Long> cast;
}
Run Code Online (Sandbox Code Playgroud)
然而,正如我在这里所说的那样Instead of performing many remote calls on …
我在网上搜遍了所有的答案,但所有答案都只是差异所在.我知道不同之处,但我不明白他们的应用程序的差异.
例如,假设我们必须采用两个浮点值,如果我们使用double,我们可以很容易地比较使用a==b,而如果我们使用Double,我们将不得不使用a.equals(b).
问题标题中提到的概念在某种程度上是同义词吗?主要差异在哪里(背景,结构,......)可以被视为另一个的子集?以下是维基百科的一些简要定义.
POJO(Plain Old Java Object) 维基百科
在计算软件中,POJO是Plain Old Java Object的首字母缩写.该名称用于强调给定对象是普通Java对象,而不是特殊对象,特别是不是Enterprise JavaBean.该术语由Martin Fowler,Rebecca Parsons和Josh MacKenzie于2000年9月创造:
Run Code Online (Sandbox Code Playgroud)"We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name. So we gave them one, and it's caught on very nicely."
Java Bean 维基百科
JavaBeans是Java的可重用软件组件,可以在构建器工具中以可视方式进行操作.实际上,它们是用符合特定约定的Java编程语言编写的类.它们用于将许多对象封装到单个对象(bean)中,以便它们可以作为单个bean对象而不是作为多个单独对象传递.JavaBean是一个可序列化的Java对象,具有一个无效的构造函数,并允许使用getter和setter方法访问属性.
价值对象 维基百科
数据传输对象(DTO),以前称为值对象或VO,是用于在软件应用程序子系统之间传输数据的设计模式.DTO通常与数据访问对象结合使用,以从数据库中检索数据.
商业对象 维基百科
业务对象是一种可理解的实体,是n层面向对象计算机程序中业务层内的一个actor.
有关:
DTO,VO,POJO,JavaBeans之间的区别? JavaBean和POJO有什么区别? DDD:实体和价值对象之间的差异有什么用?
我正在使用JSF 2和JPA 2(EclipseLink 2.3)开发一个项目.在JSF 2中,我了解到我们必须将模型与Controller分开,并将相同的东西分离到View(感谢BalusC).但是现在有了JPA生成的POJO,我想知道豆子,模型,它现在应该是pojos.
我的观点是我的.xhtml页面,用JSF 2.0开发,它将与我的控制器交互,然后在控制器中调用DAO的类,然后在我的数据库中运行.
这是正确的吗 ?我的意思是在MVC的概念?我想做正确的事,任何提示?
提前致谢.
我有以下两个班级.我可以说第一个是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;
}
}
Run Code Online (Sandbox Code Playgroud)
2)Bean类 - 所有成员变量都是私有的,具有getter和setter以及实现Serializable接口
public class Bean implements java.io.Serializable {
private String name;
private Integer age;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() { …Run Code Online (Sandbox Code Playgroud)