声明无效。请检查别名,字段标识符,投影和查询条件

时间:2016-01-14 20:04:42

标签: java dynamic cloud

我使用的是Dynamicloud,我的代码出了问题。

这是我的代码:

DynamicProvider<ContactForm> provider = new DynamicProviderImpl<ContactForm>(new RecordCredential(csk, aci));

contactFormModel.setBoundClass(ContactForm.class);
Query<ContactForm> query = provider.createQuery(contactFormModel);

try {
    RecordResults<ContactForm> list = query.add(Conditions.like("contact.namef", "ProBusiness%")).list();
    System.out.println("list = " + list.getFastReturnedSize());

    if (list.getFastReturnedSize() > 0) {
        System.out.println("Contact Name = " + list.getRecords().get(0).getName());
        System.out.println("Contact Comments = " + list.getRecords().get(0).getComments());
    }

} catch (DynamicloudProviderException e) {
    e.printStackTrace();
}

此代码抛出以下异常:

org.dynamicloud.exception.DynamicloudProviderException: Invalid statement.  Please check aliases, field identifiers, projections and query conditions.

出了什么问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

<强>您好

问题是contact这个词在namef之前就像你一样。

Dynamicloud API提供了一种设置模型别名的方法。例如,别名用于需要执行JOINS

的情况

通过从查询对象setAlias

调用方法query.setAlias("contact")来解决问题
query.setAlias("contact");

Dynamicloud resources about Query class

希望这会有所帮助