JayData没有填充OData中的对象

时间:2013-06-27 16:48:08

标签: javascript odata jaydata

我有一个工作的OData端点,我可以查看各个数据点。 (例如,localhost / myData / person(10)具有第10个人的数据。)

然而,我的JayData javascript中的对象值没有被填充。 当我打印时:

  

的console.log(人[10]);

initData中的每个object参数都是未定义的。 enter image description here

我的完整脚本是:

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);
          });
        });

更新 服务器绝对是发送数据 - 请参阅网页上网络面板中的剪辑。 enter image description here

注意:我已在JayData forum上发布了其他详细信息。

2 个答案:

答案 0 :(得分:1)

您不需要initData。首先查看浏览器的网络面板,看看您的服务器是否发送了任何数据。

答案 1 :(得分:1)

我想出了这个问题。 Eclipse从mySQL自动生成实体并将其链接到persistence.xml。 person.java中的变量(即使它们是私有的?!)与initData变量不匹配。

一旦我打开person.java并更改了

@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;

对此:

@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;

一切顺利。谢谢大家的帮助。