Внутреннее соединение EBean на той же таблице

Мне нужно выполнить внутреннее соединение в той же таблице. Ниже приведен необработанный запрос, который я сейчас выполняю.

String tagValueRowsSQL = "SELECT itv1.ItemTagValueID,itv1.FkItemID," +
            "itv1.FkTagID,itv1.TagIndex,itv1.ValueIndex,itv1.Value,itv1.LastUpdateDateTime" +
            " FROM tag.ItemTagValue itv1" +
            " INNER JOIN tag.ItemTagValue itv2" +
            " on itv1.fkTagID=" + tagIDsAndValues.get(LOCATION_STORE_CONFIG_TAG_NAME).getTagID() +
            " and itv1.Value=" + storeId +
            " and itv2.fkTagID = " + tagIDsAndValues.get(SENSOR_TYPE_TAG_NAME).getTagID() +
            " and itv2.Value=" + sensorType;
    RawSql rawSqlForSensorsInStoreAndOfType = RawSqlBuilder.parse(tagValueRowsSQL)
            .columnMapping("itv1.ItemTagValueID", "ItemTagValueID")
            .columnMapping("itv1.FkItemID", "FkItemID")
            .columnMapping("itv1.FkTagID", "FkTagID")
            .columnMapping("itv1.TagIndex", "TagIndex")
            .columnMapping("itv1.ValueIndex", "ValueIndex")
            .columnMapping("itv1.Value", "Value")
            .columnMapping("itv1.LastUpdateDateTime", "LastUpdateDateTime")
            .create();
    Query<ItemTagValueModel> query = Ebean.find(ItemTagValueModel.class);
    List<ItemTagValueModel> sensorsTagValueData = query.setRawSql(rawSqlForSensorsInStoreAndOfType).findList();

Выполнение вышеуказанного с помощью RawSQL кажется довольно неуклюжим. Как я могу выполнить вышеуказанное без использования RawSQL? Я проверил этот вопрос Ebeans, где столбецA равен столбцуB в той же таблице но я не уверен, как применить этот ответ к моей ситуации. Любая помощь приветствуется.


person AnOldSoul    schedule 11.11.2017    source источник