2013-01-23 5 views
0

SAP HANA Cloud Platform에서 Java로 간단한 프로젝트 관리 응용 프로그램을 만들고 싶습니다. 사용자는 프로젝트에 사람을 추가하고 프로젝트에서 일하는 사람의 근무 시간을 정의 할 수 있습니다.SAP HANA Cloud에서 영구 데이터 개체를 구성하고 사용하는 방법은 무엇입니까?

작은 응용 프로그램 논리를 성공적으로 만들었습니다. 그러나 영구 데이터 객체를 어떻게 정의해야하는지 명확하지 않습니다. 올바른 방법으로 데이터를 저장하고 읽는 방법.

"Project"및 "Person"클래스를 만들어 데이터를 추가했습니다 (아래 참조).

사람들과 프로젝트 사이에 관계를 만들어 프로젝트에 소비 한 시간을 어떻게 저장할 수 있습니까?

ERM에서 나는 사람과 프로젝트 간의 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; 
} 

} 

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

} 
+0

Timo Lakner의 블로그 게시물을 http://scn.sap.com/community/developer-center/cloud-platform/blog/2014/03/04/sflight-sample-http : show-how-to-use-jco와 rfc-to-premise-abap-system을 사용하여 유사한 기술 (JCo)을 사용하지만, 그가 제공 한 UI에서 일부 패턴을 다시 사용할 수 있습니다. 베스트, 루이 –

답변

0

을 간주한다.

    : 하나 개의 프로젝트는 것 같아요 여러 사람이있을 수 있기 때문에, 프로젝트 측에서 그 사람의 측면 난 강력하게 다음 단계를 recomment 테스트를 위해

    @JoinColumn(name = "projectEntity")// JPA creates join column for you with the project id - see wiki oneToMany JPA example 
    private Project project; 
    

    @OneToMany(mappedBy = "projectEntity", cascade = CascadeType.PERSIST) 
    private List<Persons> persons= new ArrayList<Persons>(); 
    

    필요

  1. SAP HCP SDK의 JPA 예제에서 시작하십시오. neo-java-web-sdk-2.36.4 \ samples \ persistence-with-jpa
  2. 예를 들어 ate, persit, find), 위에서 설명한 코딩으로 두 번째 엔티티를 추가하여 1 : N 관계를 추가합니다. 3).
  3. 이것이 작동하는 경우 로컬 Tomcat 또는 Java EE 서버에 설정된 기본 메모리 데이터베이스를 실제 로컬 DB로 이동하는 것이 좋습니다. Apache Derby는 저에게 잘 돌아 왔습니다. 더비의 설치가 설명 된 다양한 YouTube 비디오를 찾을 수 있습니다.
관련 문제