我使用的是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.
出了什么问题?
谢谢!
答案 0 :(得分:0)
<强>您好强>
问题是contact
这个词在namef
之前就像你一样。
Dynamicloud API提供了一种设置模型别名的方法。例如,别名用于需要执行JOINS
的情况通过从查询对象setAlias
query.setAlias("contact")
来解决问题
query.setAlias("contact");
Dynamicloud resources about Query class
希望这会有所帮助