プロが教えるわが家の防犯対策術!

javaでDBからデータを取ってきて階層状のjsonファイルにしたい

■コード
@AjaxPostMapping (value = "XXX"')
@ResponseBody
public File exportReplication(
@ModelAttribute(name =
"testSearchCondition",
binding =false) MenuSearchCondition searchCondition,
HttpServletRequest
request) {
List<TestSummary>
hierarchySummaries =
menuSettingsService.findTestHierarchySummariesForReplicate(searchCondition); // test階層を取得
byte[] jsonArchiveData =
testSettingsHelper.createReplicateArchiveFile(hierarchySummaries);
return testSettingsHelper.createReplicateExportFile(WebUtils.getSessionId (request),jsonArchiveData,
ZIP_FILE_NAME);
}

java側では、上記の「test階層を取得」の部分でデータを取ってきます。
そのデータを以下のjsonに格納できるようにしたいのですが、以下のようにデータが階層状になっている場合、sqlでどのように取ってくれば良いのかわかりません。
また、取ってきたデータを上記のコードでTestSummary型のもの(dto?)に格納しようとしているのですが、この中で
private String testCode;
のように宣言するものの並びに配列を入れることは可能なのでしょうか。


■json

{
"testCheckSum":"XXXXXXXXX",
"testTreeCheckSum":"xXxXXXXXXx"
"testTrees": [
{
"testCode": "001"
"testCategories": [
{
"testCategoryDetails" : [
{
"langCode": "ja",
"testCategoryName":“テスト1"
},
"langCode": "en",
"testCategoryName": "[en]テスト1"
}
],
"testItems":["a", "b","c", "d"]
},
{
"testCategoryDetails": [
{
"langCode": "ja",
"testCategoryName"':“テスト2"
},
{
"langCode": "en",
"testCategoryName": "[en]テスト2"
     }
],
"testItems":["one", "two", "three","four"]

],
],
},
]
}

質問者からの補足コメント

  • 所々menuとなっているところはtestの誤りです。

      補足日時:2023/10/30 20:36

A 回答 (1件)

SQL は関係データベースに問い合わせて二次元構造の値を取得するものです。

二次元構造からオブジェクト的構造に変換したいならば SQL では不可能なので、それ専用の Java プログラムを作成しましょう。

参考) オブジェクト関係マッピング
https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96 …
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
参考にさせていただきます!

お礼日時:2023/11/04 21:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A