1

Strongloop/Loopback と組み合わせて Android アプリケーションを開発しています。データを MySQL データベースに保存しましたが、これを Strongloop/Loopback にマッピングしても問題ありません。ただし、Strongloop/Loopback を使用してデータベースから値を取得する場合、リストは常にサイズを返しますが、値は null です。何が悪いのかわかりません。誰でもこれで私を助けることができますか? どうもありがとう :)

Strongloop からアクセスしたときのデータベースに対する json 応答は次のとおりです。

[
  {
"rewards_image_name": "http://x.x.x.x/projects/images/rewards_1.png",
"rewards_equivalent_points": "10",
"id": 1 }, {
"rewards_image_name": "http://x.x.x.x/projects/images/rewards_2.png",
"rewards_equivalent_points": "20",
"id": 2 }, {
"rewards_image_name": "http://x.x.x.x/projects/images/rewards_3.png",
"rewards_equivalent_points": "30",
"id": 3 }, {
"rewards_image_name": "http://x.x.x.x/projects/images/rewards_4.png",
"rewards_equivalent_points": "40",
"id": 4 }
]

リストを取得するための私のコードは次のとおりです。

    StrongloopClient strongloopClient = new StrongloopClient(this.context);
    RestAdapter adapter = strongloopClient.getLoopBackAdapter("Rewards", "GET");
    StrongloopRewardsModelRepository strongloopRewardsModelRepository = adapter.createRepository(StrongloopRewardsModelRepository.class);       
    strongloopRewardsModelRepository.findAll(new ListCallback<StrongloopRewardsModel>() {

        @Override
        public void onSuccess(List<StrongloopRewardsModel> arg0) {
            Log.e("", "GetAllRewards success:  " + arg0.get(0).getEquivalentPoints());

        }

        @Override
        public void onError(Throwable arg0) {
            Log.e("", "GetAllRewards error: " + arg0);
        }
    });

これが StrongloopClient です。

public class StrongloopClient {

private Context context;
private RestAdapter adapter;

public StrongloopClient(Context contxt) {
    context = contxt;
}

    public RestAdapter getLoopBackAdapter(String transaction, String operation) {
    if (adapter == null) {
        adapter = new RestAdapter(context, "http://192.168.44.101:3000/api");
        adapter.getContract().addItem(
                new RestContractItem("/" + transaction, operation),
                transaction);
    }
    return adapter;
}   

リポジトリのコードは次のとおりです。

public class StrongloopRewardsModelRepository extends ModelRepository<StrongloopRewardsModel>{

public StrongloopRewardsModelRepository() {
    super("Rewards", "Rewards", StrongloopRewardsModel.class);  
    }
}

そして、これはモデルです:

public class StrongloopRewardsModel extends Model {

private Integer rewardsImageId;
private String rewardImageName;
private String equivalentPoints;

public Integer getRewardsImageId() {
    return rewardsImageId;
}
public void setRewardsImageId(Integer rewardsImageId) {
    this.rewardsImageId = rewardsImageId;
}
public String getRewardImageName() {
    return rewardImageName;
}
public void setRewardImageName(String rewardImageName) {
    this.rewardImageName = rewardImageName;
}
public String getEquivalentPoints() {
    return equivalentPoints;
}
public void setEquivalentPoints(String equivalentPoints) {
    this.equivalentPoints = equivalentPoints;
}
}
4

2 に答える 2

0

これは、検索でインスタンスが見つからなかったためです。アプリでこれを処理する必要があるかどうか、または SDK が処理するかどうかはわかりません。

たとえば、rest インターフェイスを介して要素 [1] で検索しようとすると、404 (見つかりません) に変換されます: rest: {after: convertNullToNotFoundError}

https://github.com/strongloop/loopback-datasource-juggler/blob/master/lib/dao.js#L771

于 2014-06-20T17:36:29.197 に答える