我为单独的business-logic of @Entities创建了结构,我做了像POJO这样的@Entity,这在类似于BO包含的@Entity和验证中进行了扩展。
我认为将我的"BO"发送给CRUD,但问题是当我希望读取返回me @Entity对象时(我不知道是否必须创建转换器或其他东西),但是当我想要创建、更新或删除时,请返回错误:"BO"不知道@Entity (我知道这一点,但我应该以某种方式采取E 121父类E 222)。
有什么想法吗?
更新
实体类
@Entity公共级雇员{
protected String id;
protected String name;
protected float salary;
protected Employee() { }
public final String getId() {
return id
}
public void setId(String id) {
this.id = id;
}
public final String getName() {
return name
}
public void setName(String name) {
this.name = name;
}
public final float getSalary() {
return salary
}
public void setSalary(float salary) {
this.salary = salary;
}}
我的BO:
public class EmployeeBO extends Employee{
public EmployeeBO(String id, String name, float salary) {
setId(id);
setName(name)
setSalary(salary);
}
public final void setSalary(float salary) {
//bussines logic
}
public final void setName(String name) {
//bussines logic
}
public final void setId(String id) {
//bussines logic
}}
然后我只工作EmployeeBO。例如,em.remove(employeeBO)
发布于 2013-11-12 14:18:16
您的业务层应该在数据层之上操作,并组织成逻辑连接的组。就像这样:
public class EmployeeInfoOperations {
public final void updateName(Employee employee, String newName) {
//bussines logic: trigger name update on external systems?
}
public final void updateContactAddress(Employee employee, Address newAddress) {
}
}
public class EmployeeAccounting {
public final void changeSalary(Employee employee,float newSalary) {
}
public final void giveBonus(Employee employee, bigdecimal bonusAmount) {
}
}您的业务操作类甚至不必以一种实体类型为中心。考虑一组业务操作,足够小到可以成为一个类,并使用任何实体类型作为参数。
https://stackoverflow.com/questions/19930353
复制相似问题