2010-04-30 2 views
1

누구나 ColdFusion 9 Hibernate 통합을 사용하여 엔트리 엔티티에 외래 키 값을 삽입하려고 할 때이 오류에 대해 알고 있습니까?오류 : java.lang.String을 coldfusion.cfc.CFCBeanProxy로 캐스팅 할 수 없습니다.

java.lang.ClassCastException가 : java.lang.String의이 coldfusion.cfc.CFCBeanProxy 캐스트 할 수없는

근본 원인 : org.hibernate.HibernateException : java.lang.ClassCastException가 : java.lang.String의 다음은

coldfusion.cfc.CFCBeanProxy

캐스트 할 수없는 내 엔티티 객체에 대한 다음 내 사용자 개체에 대한 코드 ..

이 문제 있나요?

entry.cfc

/** 
* Entries Object 
*/ 
component output="false" persistent="true"{ 
    property name="entry_id" fieldType="id" generator="uuid"; 
    property name="entryBody" ormType="text"; 
    property name="title" notnull="true" type="string"; 
    property name="time" fieldtype="timestamp"; 
    property name="isCompleted" ormType="boolean" dbdefault="0" default="false"; 
    property name="userID" fieldtype="many-to-one" fkcolumn="userID" cfc="user"; 

    Entry function init() output=false{ 
     return this; 
    } 
} 

/** 
* Users Object 
*/ 
component output="false" persistent="true"{ 
    property name="userID" fieldType="id" generator="uuid"; 
    property name="firstName" notnull="true" type="string"; 
    property name="lastName" notnull="true" type="string"; 
    property name="password" notnull="true" type="string"; 
    property name="userType" notnull="true" type="string"; 
    //property name="entry" fieldtype="one-to-many" type="array" fkcolumn="userID" cfc="entry"; 

    User function init() output=false{ 
     return this; 
    } 
} 
+0

출력 = "false"는 스크립트 스타일의 구성 요소에 실제로 필요하지 않습니다. – Henry

답변

1
property name="user" type="User" fieldtype="many-to-one" fkcolumn="userID" cfc="User"; 

속성이 유형의 사용자가 아닌 ID해야하기 때문에 user.cfc? CF-ORM/Hibernate에서 FK를 설정하는 방법은 없습니다. 당신은해야합니다 ...

entry = EntityNew("Entry"); 
user = EntityLoadByPK("user",1); 
entry.setUser(user); 
+0

헨리 감사합니다 지금이 다른 오류 메시지가 나타납니다. 오류 유형 : ColdBox.plugins.BeanFactory.PopulateBeanException : [적용되지 않음] 오류 메시지 : 형식의 인수 USER로 bean guestbook.model.entry을 채우는 중 오류가 발생했습니다. 클래스 java.lang.String. 구성 요소 이름이이 인수의 유형으로 지정된 경우 구성 요소의 정의 파일을 찾을 수 없거나 액세스 할 수없는 경우 일 수 있습니다. SETUSER 함수에 전달 된 user 인수의 형식이 user가 아닙니다. – Faz

+0

즉, coldbox의 RC에서 사용자 (실제로는 userID : 문자열)를 제거해야합니다. 그런 다음 채우기를 호출 한 후 사용자 자신을 설정합니다. – Henry

+0

미안하지만 어디에서 사용자를 삭제합니까? – Faz