3

I have a working OData endpoint where I can look at individual datapoints. (For example, localhost/myData/person(10) has the data of the 10th person.)

However my objects' values in my JayData javascript are not being populated. When I print:

console.log(person[10]);

Every object parameter in initData is undefined. enter image description here

My full script is:

var ctx = new WebApplication.resource_dbEntities({ name: 'oData', oDataServiceHost: 'http://localhost:8080/Resource/example.svc' });

    ctx.onReady(function() {
            ctx.person.toArray().then(function(person){
            console.log("Person[10] is:");
            console.log(person[10]);
              person.forEach(function(p) {
                   //Always prints "undefined" :(
                   console.log(p.person_lastname);
               });
          })

          .fail(function(r){
            console.log(r);
          });
        });

UPDATE: The server is most definitely sending data - see a clip from the network pannel on the webpage. enter image description here

Note: I have posted additional details on the JayData forum.

Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
AllieCat
  • 3,890
  • 10
  • 31
  • 45

2 Answers2

1

You do not need initData. First see the network panel of your browser and see if your server sends any data.

Gabor Dolla
  • 2,680
  • 4
  • 14
  • 13
1

I figured out the issue. Eclipse auto-generates entities from mySQL and link that to persistence.xml. The variables (even though they were private?!) in person.java did not match the initData variables.

Once I opened person.java and changed

@Column(name="project_id")
private int projectId;      
@Column(name="project_budget")
private int projectBudget;

@Column(name="project_client")
private String projectClient;

@Temporal(TemporalType.DATE)
@Column(name="project_enddate")
private Date projectEnddate;

@Column(name="project_ffm")
private int projectFfm;

@Column(name="project_manager")
private int projectManager;

@Column(name="project_name")
private String projectName;

@Column(name="project_number")
private String projectNumber;

@Temporal(TemporalType.DATE)
@Column(name="project_startdate")
private Date projectStartdate;

@Column(name="project_status")
private int projectStatus;

To this:

@Id
@Column(name="project_id")
private int project_id;

@Column(name="project_budget")
private int project_budget;

@Column(name="project_client")
private String project_client;

@Temporal(TemporalType.DATE)
@Column(name="project_enddate")
private Date project_enddate;

@Column(name="project_ffm")
private int project_ffm;

@Column(name="project_manager")
private int project_manager;

@Column(name="project_name")
private String project_name;

@Column(name="project_number")
private String project_number;

@Temporal(TemporalType.DATE)
@Column(name="project_startdate")
private Date project_startdate;

@Column(name="project_status")
private int project_status;

Everything worked. Thanks everyone for the help.

AllieCat
  • 3,890
  • 10
  • 31
  • 45