gpt4 book ai didi

java - 发送 JPA 包装器对象

转载 作者:行者123 更新时间:2023-11-29 09:30:21 25 4
gpt4 key购买 nike

我为 @Entities 的单独业务逻辑 创建了结构,我做了 @EntityPOJO 和这扩展为类似 BO 的内容,包含业务逻辑验证

我想为 CRUD 发送我的 "BO" 但问题是当我想要read 时返回给我 @Entity 对象(我不知道我是否必须创建转换器或其他东西)但是当我想要创建、更新或删除时返回我错误说 "BO" is not know @Entity(我知道这一点,但我应该采取某种方式来获取父类)。

有什么想法吗?

更新

实体类

@Entity

公共(public)类员工{

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;
}

我的老板:

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)

最佳答案

您的业务层应在数据层之上运行,并组织成逻辑上相连的组。像这样:

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) {
}
}

您的业务操作类甚至不必以一种实体类型为中心。考虑一组业务操作,小到足以成为一个类,并使用任何实体类型作为参数。

关于java - 发送 JPA 包装器对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19930353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com