我想在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);
}
}); },
要读取数据,我只需将行绑定到对象。
那么,如何以正确的方式创建数据对象呢?我如何读取和写入对象的数据?
Person.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;
}
}
1条答案
按热度按时间gblwokeq1#
首先是关于人和项目之间的联系的问题。由于一个项目可以有多个人,我猜,你需要一个
在项目和人员方面
对于测试,我强烈推荐以下步骤:
1.从SAP HCP sdk中的JPA示例开始:neo-java-web-sdk-2.36.4\samples\persistence-with-jpa
1.一旦理解了这个例子(create、persit、find),就可以通过添加第二个实体来添加1:N关系,其中的代码如上所述。(3)第三章。
1.如果这是工作,我建议从默认的内存数据库设置在您的本地Tomcat或Java EE服务器到一个真实的的本地DB。Apache Derby在那里工作得很好。你可以在youtube上找到各种解释derby安装的视频。