2013-04-09 2 views
4

byte[] 필드를 매핑하는 데 문제가 있습니다. 나는 몇 가지 해결책을 찾고 있었지만 지금까지 아무 것도 시도하지 못했습니다.HBM 매핑 이미지/이진

다음
The length of the byte[] value exceeds the length configured in the mapping/parameter. 

내가 지금까지 hbm.xml

<property name="Data" type="BinaryBlob"> 
    <column name="attachmentData" sql-type="varbinary(max)"/> 
</property> 

에서 I를 잘 작성하지 못했습니다 여기에 뭔가를하고 있습니까있어 무엇 : 내가 할 모든이 예외인가?

업데이트 - 솔루션 :

그것은 내가 잘못했을 것으로 밝혀졌다. byte[]저장 프로 시저에 삽입하므로 속성 매핑이 저장 프로 시저와 아무 상관이 없습니다. 대신, 우리는과 같이 NHibernate에에게 sprocs가 매개 변수의 유형을 알려줄 필요가 :

query.SetParameter(param.Key, param.Value, NHibernateUtil.BinaryBlob); 
+1

해답을 해답으로 추가하고 정확한 답으로 선택하십시오. ** 해결 된 **으로 표시됩니다.) – brasofilo

답변

4

NHibernate에이 VARBINARY (최대)를 이해하지 않고 8000 바이트의 기본값을 사용합니다.

따라서 번호를 제공해야합니다. 나는.

VARBINARY (2147483647) 내가 작업하는 데 사용하지만, regression 버그 생각

.

+0

아니요 작동하지 않습니다. 나는 여전히 파일> 8KB와 동일한 예외를 얻는다. – hylde

+0

당신의 대답에 대해 Rippo에게 감사 드리며 그것이 효과가있을 것이라고 추측한다. 나는 다른 경우를 가졌고 그것은 나에게 잘못된 것을하고 있었다. :) – hylde

관련 문제