Java 同一个表上的内部联接
我需要在同一个表上执行内部联接。下面是我当前执行的原始查询Java 同一个表上的内部联接,java,sql-server,orm,ebean,playframework-2.6,Java,Sql Server,Orm,Ebean,Playframework 2.6,我需要在同一个表上执行内部联接。下面是我当前执行的原始查询 String tagValueRowsSQL = "SELECT itv1.ItemTagValueID,itv1.FkItemID," + "itv1.FkTagID,itv1.TagIndex,itv1.ValueIndex,itv1.Value,itv1.LastUpdateDateTime" + " FROM tag.ItemTagValue itv1" +
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();
String tagvaluerowsql=“选择itv1.ItemTagValueID,itv1.FkItemID,”+
“itv1.FkTagID,itv1.TagIndex,itv1.ValueIndex,itv1.Value,itv1.LastUpdateDateTime”+
“从tag.ItemTagValue itv1”+
“内部联接标记。ItemTagValue itv2”+
“在itv1.fkTagID=“+tagIDsAndValues.get(LOCATION\u STORE\u CONFIG\u TAG\u NAME).getTagID()+
“和itv1.Value=“+storeId+
“和itv2.fkTagID=“+tagIDsAndValues.get(传感器类型标记名称).getTagID()+
“和itv2.Value=“+传感器类型;
RawSql RawSqlForSensorInstandOfType=RawSqlBuilder.parse(TagValueRowSql)
.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=Ebean.find(ItemTagValueModel.class);
List sensorsTagValueData=query.setRawSql(RawSqlForSensorInstoreAndOfType).findList();
使用RawSQL执行上述操作似乎相当笨拙。如何在不使用RawSQL的情况下执行上述操作?我检查了这个问题,但我不知道如何将这个答案应用到我的情况。任何帮助都将不胜感激