有什么区别
什么构成了业务领域类中的丰富建模?
EJB必须与Spring堆叠有什么优势?为什么我不能只使用Spring Entity Manager,Security和POJO来做EJB所做的事情?
问题标题中提到的概念在某种程度上是同义词吗?主要差异在哪里(背景,结构,......)可以被视为另一个的子集?以下是维基百科的一些简要定义.
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:实体和价值对象之间的差异有什么用?
我正在尝试从我的数据库生成pojos但我在eclipse indigo 3.7.2上安装了hibernate工具3.4插件和hibernate 3.6.10库(它们似乎都是)在构建路径中出现以下错误
精简版 :
org.hibernate.console.HibernateConsoleRuntimeException: Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class
Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class
java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.cfg.reveng.OverrideRepository
Could not initialize class org.hibernate.cfg.reveng.OverrideRepository
java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.cfg.reveng.OverrideRepository
Could not initialize class org.hibernate.cfg.reveng.OverrideRepository
Run Code Online (Sandbox Code Playgroud)
来自项目构建路径的MY罐子(按顺序排列):
我有一个在spring context xml文件中配置的属性文件.我从文件加载值很好.我试图从常规pojo中加载属性文件中的属性,而不是弹簧管理.由于Spring已经加载了该属性,我想知道是否有办法获取值而不是我必须手动加载属性文件?
过去几周我一直在使用spring和hibernate,我一直在那里学习新东西.
现在我有一个问题,我想用Hibernate中的Projections来解决.
假设有一个模型Person,该模型有很多Car.以下是类定义大致如下所示:
public class Person implements java.io.Serializable {
private Integer id;
private String name;
private List<Car> cars;
private Integer minYear; // Transient
private Integer maxYear; // Transient
}
public class Car implements java.io.Serializable {
private Integer id;
private Integer year;
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是我希望得到每个人的minYear(maxYear)Person最早的年份(最近一年)cars.
后来我找到了一个使用的解决方案,Projections但我偶然发现org.hibernate.QueryException: could not resolve property: minYear of: model.Person,这是db操作的代码:
Criteria criteria = sessionFactory.getCurrentSession().createCriteria("model.Person");
criteria.add(create(personInstance));
criteria.createAlias("minYear", "minYear");
criteria.setProjection(Projections.min("cars.year").as("minYear"));
Run Code Online (Sandbox Code Playgroud)
无论如何都要将聚合值存储在transient方法中,Projections因为我只想尽可能避免使用普通的SQL和HQL.
假设我有一个POJO类用户和一个constuctor public User(int id, String name){...}.但是当我实例化User对象时就像User u=new User()没有参数一样,Eclipse会给出错误,如构造函数User()未定义.但是当我没有参数化的构造函数时,它工作正常.有人可以解释为什么它需要定义默认构造函数?
嗨,我正在尝试映射这个pojo Rent类来创建他的hibernate映射文件.
Rent.java(POJO):
public class Rent implements Serializable {
private static final long serialVersionUID = 1L;
Employee employee;
Client client;
Car car;
/* + getter and setter... */
}
Run Code Online (Sandbox Code Playgroud)
我的目的是创建一个web应用程序,用户可以设置哪个员工租了一辆车到客户端.所以这是我试过的实现
Rent.hbm.xml:
<hibernate-mapping>
<class name="com.google.musicstore.domain.Rent" table="RENT">
<id name="id" column="RENT_ID">
<generator class="native"/>
</id>
<one-to-one name="car" class="com.project.domain.Car"
cascade="save-update">
</one-to-one>
<one-to-one name="client" class="com.project.domain.Client"
cascade="save-update">
</one-to-one>
<many-to-one name="employee" class="com.project.domain.Employee"
cascade="save-update">
</many-to-one>
</class>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)
但它给了我这个错误:
[java] Initial SessionFactory creation failed.org.hibernate.MappingException: An association from the table RENT refers to an unmapped class: com.project.domain.Employee
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?感谢您的帮助.
我还映射了hibernate.cfg.xml …
我是Retrofit的新手并尝试使用Retrofit发出POST请求.我的POST请求有一个复杂的JSON正文,如下所示:
负载:
{
"user": {
"personal_info": {
"first_name": "Walter",
"last_name": "White",
"date_of_birth": "1972-01-03 00:00:00 PST"
},
"address_info": {
"address_1": "308 NEGRA ARROYO LANE",
"address_2": "#",
"city": "ALBUQUERQUE",
"state": "NM",
"zip_code": "87104"
},
"contact_info": {
"email": "wwhite@test.com",
"telephone": "88888888888",
"telephone_type_id": 1
},
"employment_info": {
"employer_name": "SELF",
"employment_status_id": 7,
"annual_income": 9000000000000000,
"monthly_income": 750000000000,
"employment_start_year": 0,
"employment_start_month": 0
}
}
}
Run Code Online (Sandbox Code Playgroud)
我将接口定义为
@POST("/users")
void registerUser(@Body User User, Callback<User> cb);
Run Code Online (Sandbox Code Playgroud)
我不确定我的User类应该是什么样子,我希望有效负载与上面提到的相同,到目前为止,我的User类为
public class User {
@SerializedName("personal_info")
private PersonalInfo personalInfo;
@SerializedName("address_info")
private AddressInfo addressInfo;
@SerializedName("contact_info") …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Kotlin中创建一个简单的POJO(POKO?)类,使用默认的空构造函数和带参数的辅助构造函数,它们提供属性
这不会给我firstName和lastName属性:
class Person() {
constructor(firstName: String?, lastName: String?) : this()
}
Run Code Online (Sandbox Code Playgroud)
这给了我属性,但它们在实例化后没有设置:
class Person() {
constructor(firstName: String?, lastName: String?) : this()
var firstName: String? = null
var lastName: String? = null
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个编译错误,说"不允许在辅助构造函数参数上使用'var'.":
class Person() {
constructor(var firstName: String?, var lastName: String?) : this()
}
Run Code Online (Sandbox Code Playgroud)
那么,这是怎么做到的?如何拥有默认构造函数和带参数和属性的辅助构造函数?