Java 如何配置&;在SAP HANA云中使用持久数据对象?
我想在SAP HANA云平台上用Java创建一个简单的项目管理应用程序。用户可以向项目中添加人员,并定义在项目中工作的人员的工作时间 我成功地创建了一个小型应用程序逻辑。但是,我不清楚应该如何定义持久数据对象。以及如何以正确的方式存储和读取数据 我创建了类“Project”和“Person”来添加数据(见下文) 我如何在他们之间建立关系并存储一个人在项目上花费的工作时间 在ERM中,我知道解决方案:Person和Project之间的1:n关系,以及它们之间的一个额外表格,其中包含“projectID”、“personID”和“workingHours” 到目前为止,应用程序使用函数“addNewPerson”写入数据: 要读取数据,我只需将行绑定到对象 那么,如何以正确的方式创建数据对象呢?我如何读取和写入对象的数据 Person.java:Java 如何配置&;在SAP HANA云中使用持久数据对象?,java,persistence,sap,sap-cloud-platform,Java,Persistence,Sap,Sap Cloud Platform,我想在SAP HANA云平台上用Java创建一个简单的项目管理应用程序。用户可以向项目中添加人员,并定义在项目中工作的人员的工作时间 我成功地创建了一个小型应用程序逻辑。但是,我不清楚应该如何定义持久数据对象。以及如何以正确的方式存储和读取数据 我创建了类“Project”和“Person”来添加数据(见下文) 我如何在他们之间建立关系并存储一个人在项目上花费的工作时间 在ERM中,我知道解决方案:Person和Project之间的1:n关系,以及它们之间的一个额外表格,其中包含“project
package com.sap.netweaver.cloud.sample;
import javax.persistence.*;
@Entity
@Table(name = "T_PERSON")
@NamedQuery(name = "AllPersons", query = "select p from Person p")
public class Person {
@Id
@GeneratedValue
private long id;
@Basic
private String firstName;
@Basic
private String lastName;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public void setFirstName(String param) {
this.firstName = param;
}
public String getFirstName() {
return firstName;
}
public void setLastName(String param) {
this.lastName = param;
}
public String getLastName() {
return lastName;
}
}
package com.sap.netweaver.cloud.sample;
import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
@Entity
@Table(name = "T_PROJECT")
@NamedQuery(name = "AllProjects", query = "select p from Project p")
public class Project {
@Id
@GeneratedValue
private long id;
@Basic
private String projectName;
@Basic
private String projectDesc;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public void setProjectName(String param) {
this.projectName = param;
}
public String getProjectName() {
return projectName;
}
public void setProjectDesc(String param) {
this.projectDesc = param;
}
public String getProjectDesc() {
return projectDesc;
}
}
Project.java:
package com.sap.netweaver.cloud.sample;
import javax.persistence.*;
@Entity
@Table(name = "T_PERSON")
@NamedQuery(name = "AllPersons", query = "select p from Person p")
public class Person {
@Id
@GeneratedValue
private long id;
@Basic
private String firstName;
@Basic
private String lastName;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public void setFirstName(String param) {
this.firstName = param;
}
public String getFirstName() {
return firstName;
}
public void setLastName(String param) {
this.lastName = param;
}
public String getLastName() {
return lastName;
}
}
package com.sap.netweaver.cloud.sample;
import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
@Entity
@Table(name = "T_PROJECT")
@NamedQuery(name = "AllProjects", query = "select p from Project p")
public class Project {
@Id
@GeneratedValue
private long id;
@Basic
private String projectName;
@Basic
private String projectDesc;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public void setProjectName(String param) {
this.projectName = param;
}
public String getProjectName() {
return projectName;
}
public void setProjectDesc(String param) {
this.projectDesc = param;
}
public String getProjectDesc() {
return projectDesc;
}
}
首先,请回答您关于此人与项目之间关系的问题。由于一个项目可以有多个人,我想,你需要一个
@OneToMany(mappedBy = "projectEntity", cascade = CascadeType.PERSIST)
private List<Persons> persons= new ArrayList<Persons>();
对于测试,我强烈建议执行以下步骤:
您可能想查看Timo Lakner在他的博客文章,他使用了类似的技术(JCo),但也许您可以重用他提供的UI中的一些模式。最好的,鲁伊