최대 절전 모드를 사용하여보기와 테이블간에 쿼리를 시도하고 있습니다.최대 절전 모드 :보기 및 테이블과 다 대다 관계
내가 3 개 예측, SELECT id, name, storages
최대 절전 모드 엔티티 같은 것을 준비하는 것은
@Entity
@Table(name = "cl_storage")
public class StorageModel implements Serializable {
@ManyToMany(mappedBy = "storages")
private final Set<LibraryModel> libraries = new HashSet<LibraryModel>();
}
은 내가
ArrayIndexOutOfBoundsException
를 얻을 수 (나는 단지 관련 컬럼을 포함하고있어)
@Entity
@Table(name = "cl_libraryWithItems_view")
public class LibraryWithItemsViewModel implements Serializable {
.... other columns
@ManyToMany(fetch = FetchType.EAGER)
@ForeignKey(name = "fk_library_id", inverseName = "fk_storage_id")
@JoinTable(name = "cl_library_storage",
joinColumns = {@JoinColumn(name="library_id")},
inverseJoinColumns = {@JoinColumn(name="storage_id")})
Set<StorageModel> storages = new HashSet<StorageModel>();
초 엔티티입니다. 후드를 들여다 보니 다음과 같은 오류가 발생합니다. SimpleProjection.java
에서
, 라인 (90)은, 기억 칼럼에 대한 항목의 수, I는
public int getColumnCount(Criteria criteria, CriteriaQuery criteriaQuery) {
Type types[] = getTypes(criteria, criteriaQuery);
int count = 0;
for (int i=0; i<types.length; i++) {
count += types[ i ].getColumnSpan(criteriaQuery.getFactory());
}
return count;
}
이 혼잡 다른 곳에서, 동일한 파일에서 1
int numColumns = getColumnCount(criteria, criteriaQuery);
얻을 첫 번째 두 열의 0입니다 (이 범위를 벗어난 곳은 여기에있다)
result[i] = types[i].nullSafeGet(rs, columnAliases[pos], session, null);
추가 세부 사항, CollectionType.java
에 getColumnSpan 우리가 수집을 기대하고 있기 때문에이 방법이 트리거됩니다, 0을 반환하고, 0
public int getColumnSpan(Mapping session) throws MappingException {
return 0;
}
그래서 문제가 될 것으로 보인다 반환, 우리의 열 컬렉션을, 그리고 getColumnSpan 0을 반환
이제 문제를 해결하는 방법이 있습니다. 무엇을해야합니까? 그러면 storages
열을 성공적으로 투영 할 수 있습니까?
감사합니다.
http://stackoverflow.com/questions/2920678/getting-all-objects-with-a-certain-element-inside-a-collection-of-strings-with-c에 따르면, 이것에 대한 열린 버그. – Nasir