0

オブジェクト アプリケーションと環境の 2 つのリストがあります。これらのリストを追加していますが、アプリケーションの 1 つの完全なリストと、環境の他の完全なリストとして出力を取得しています。

アプリケーションと環境の 1 つのエントリと、アプリケーションと環境の 2 行目などのように、入れ子になった形式で必要です。

これは私のコードです:

@GET
@Path("/test")
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public ArrayList<MyModel> Test(){

    System.out.println("inside test");

    List<ApplicationDTO> allApplication = applicationService.getAllApplication();

    List<Application> Applist = new ArrayList<Application>();
    List<Environment> Envlist = new ArrayList<Environment>();

    for(ApplicationDTO d: allApplication)
    {
        Application a = new Application();

        a.setApplicationDescription(d.getApplicationDescription());
        a.setApplicationId(d.getApplicationId());
        a.setApplicationName(d.getApplicationName());
        a.setAssignedTo(d.getAssignedTo());
        a.setCreatedBy(d.getCreatedBy());
        a.setCreateTime(d.getCreateTime());
        a.setModifiedTime(d.getModifiedTime());
        a.setOwner(d.getOwner());

        Environment e = new Environment();

        for(EnvironmentDTO en: d.getEnvironment())
        {
            e.setEnvironmentId(en.getEnvironmentId());
            e.setEnvironmentName(en.getEnvironmentName());
            e.setOwner(en.getOwner());
            e.setCreateTime(en.getCreateTime());

            Envlist.add(e);
        }

        Applist.add(a);
    }

    ArrayList<MyModel> obj= new ArrayList<MyModel>();
    MyModel mm = new MyModel();
    mm.setAppDTO(Applist);
    mm.setEnDTO(Envlist);
    obj.add(mm);
    return obj; 
    }

編集

アプリケーション内に環境のリストを追加したクラスを変更し、アプリケーション内のすべての環境のリストを取得していますが、1 つのアプリケーション内に 1 つの環境が必要で、次のアプリケーション内に別の環境が必要でした。何が欠けていますか?

    public List<Application> Test(){

    System.out.println("inside test");

    List<ApplicationDTO> allApplication = applicationService.getAllApplication();

    List<Application> Applist = new ArrayList<Application>();
    List<Environment> Envlist = new ArrayList<Environment>();

    for(ApplicationDTO d: allApplication)
    {           
        Application a = new Application();

        a.setApplicationDescription(d.getApplicationDescription());
        a.setApplicationId(d.getApplicationId());
        a.setApplicationName(d.getApplicationName());
        a.setAssignedTo(d.getAssignedTo());
        a.setCreatedBy(d.getCreatedBy());
        a.setCreateTime(d.getCreateTime());
        a.setModifiedTime(d.getModifiedTime());
        a.setOwner(d.getOwner());

        for(EnvironmentDTO en: d.getEnvironment())
        {
            Environment e = new Environment();

            e.setEnvironmentId(en.getEnvironmentId());
            e.setEnvironmentName(en.getEnvironmentName());
            e.setOwner(en.getOwner());
            e.setCreateTime(en.getCreateTime());
            Envlist.add(e);
        }

        a.setEnvlists(Envlist);         
        Applist.add(a);
    }
    return Applist;
4

1 に答える 1

1

ApplicationWithEnvironments のように、アプリケーションと環境のリストを含むオブジェクトを作成する必要があります。

    List<ApplicationWithEnvironments > AppWithEnvlist = new ArrayList<ApplicationWithEnvironments >();        

    for(ApplicationDTO d: allApplication) {
        ApplicationWithEnvironments appWithEnv = new ApplicationWithEnvironments();

        Application a = new Application();

        a.set...

        appWithEnv.setApplication(a);


        for(EnvironmentDTO en: d.getEnvironment())
        {
            Environment e = new Environment();
            e.set...
            appWithEnv.addEnvironment(e);
        }

        AppWithEnvList.add(appWithEnv);
    }

    ArrayList<MyModel> obj= new ArrayList<MyModel>();
    MyModel mm = new MyModel();
    mm.setAppWithEnvList(AppWithEnvList);
    obj.add(mm);
    return obj; 

または、Application オブジェクトに環境のリストを含めることができるため、新しい ApplicationWithEnvironments オブジェクトはもう必要ありません。

于 2013-07-01T11:42:42.683 に答える