我想在 SAP HANA 云平台上用 Java 创建一个简单的项目管理应用程序。用户可以将人员添加到项目并定义从事项目的人员的工作时间。
我成功创建了一个小型应用程序逻辑。但是,我不清楚我应该如何定义持久数据对象。以及如何以正确的方式存储和读取数据。
我创建了“Project”和“Person”类来添加数据(见下文)。
如何在它们之间建立关系并存储一个人在项目上花费的工作时间?
在 ERM 上,我知道解决方案:Person 和 Project 之间的 1:n 关系以及它们之间的额外表,其中包含“projectID”、“personID”和“workingHours”。
到目前为止,应用程序使用“addNewPerson”函数写入数据:
addNewPerson : function( sFirstName, sLastName, oTable ) {
var _this = this;
_this.odataServiceUrl = personsListOdataServiceUrl;
jQuery.ajax({
url : _this.odataServiceUrl + "/Person?$format=json",
type : 'POST',
contentType : 'application/json',
data : JSON.stringify({
firstName : sFirstName,
lastName : sLastName
}),
success : function(data) {
_this.getView().getModel().refresh();
oTable.unbindRows().bindRows("/Person");
},
error : function(jqXHR, textStatus, errorThrown) {
sap.ui.commons.MessageBox.alert("Failed to add person: " + textStatus+ "\n" + errorThrown);
}
}); },
要读取数据,我只需将行绑定到对象。
那么,我怎样才能以正确的方式创建数据对象呢?以及如何将数据读取和写入对象?
人.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;
}
}
项目.java:
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;
}
}