2010-04-30 4 views
1

Est-ce que quelqu'un est au courant de cette erreur quand j'essaie d'insérer une valeur de clé étrangère dans mon entité d'entrée en utilisant l'intégration de ColdFusion 9 Hibernate?erreur: java.lang.String ne peut pas être cast à coldfusion.cfc.CFCBeanProxy quelqu'un sait à ce sujet?

java.lang.ClassCastException: java.lang.String ne peut pas être jeté à coldfusion.cfc.CFCBeanProxy

Cause Racine: org.hibernate.HibernateException: java.lang.ClassCastException: java.lang.String ne peut pas être jeté à coldfusion.cfc.CFCBeanProxy

Ci-dessous le code de mon objet entité et pour mon objet utilisateur ..

y at-il quelque chose de mal avec cela?

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; 
    } 
} 

user.cfc

/** 
* 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

output = "false" n'est pas vraiment nécessaire pour les composants dans le style de script. – Henry

Répondre

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

Parce que la propriété doit être de type utilisateur, pas l'ID? Dans CF-ORM/Hibernate, il n'y a pas moyen de simplement définir FK. Vous devez ...

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

Merci pour cela Henry je reçois je reçois ce message d'erreur différent maintenant: Type d'erreur: ColdBox.plugins.BeanFactory.PopulateBeanException: [N/A] Messages d'erreur: erreur populating bean guestbook.model.entry avec l'argument USER de type classe java.lang.String. Si le nom du composant est spécifié en tant que type de cet argument, il est possible qu'un fichier de définition du composant soit introuvable ou inaccessible. L'argument utilisateur passé à la fonction SETUSER n'est pas de type utilisateur. – Faz

+0

Cela signifie que vous devez supprimer l'utilisateur (c'est vraiment userID: String) de RC de coldbox. Définissez ensuite vous-même l'utilisateur après l'appel de populate. – Henry

+0

désolé de demander mais d'où puis-je retirer l'utilisateur? – Faz

Questions connexes