Join<Location, LocationType> locationTypeJoin = root.join(Location_.LOCATION_TYPE);
Join<Location, Address> addressJoin = root.join(Location_.ADDRESS, JoinType.LEFT);
Join<Address, State> stateJoin = addressJoin.join(Address_.STATE, JoinType.LEFT);
Join<Address, County> countyJoin = addressJoin.join(Address_.COUNTY, JoinType.LEFT);
criteriaQuery.multiselect(
root.get(Location_.LOCATION_ID), root.get(Location_.LOCATION_NAME), root.get(Location_.LOCATION_CODE),
root.get(Location_.LAST_UPDATE_DATE_TIME), root.get(Location_.CREATE_DATE_TIME), root.get(Location_.SOURCE_SYSTEM_UNIQUE_KEY),
joinLocationType.get(LocationType_.LOCATION_TYPE_ID), joinLocationType.get(LocationType_.LOCATION_TYPE),
joinLocationType.get(LocationType_.LOCATION_TYPE_DESC),joinAddress.get(Address_.ADDRESS_ID));
Используя оператор joinAddress.get(Address_.ADDRESS_ID)
выше в множественном выборе, я пытаюсь выбрать внешний ключ таблицы Address в таблице Location.Поскольку я делаю левое соединение, для некоторого ряда это становится нулевым.Поэтому, когда я пытаюсь выбрать, он показывает исключение недопустимого аргумента.