hibernate - java.lang.NoSuchMethodException: Unknown property 'language' on class 'class java.lang.Class' -
im getting follwoing error:
java.lang.nosuchmethodexception: unknown property 'language' on class 'class java.lang.class' rest call used : /test/rest/languages/insertobj/japanese/swedish%206
i using : org.apache.commons.beanutils.propertyutils;
i had specified property 'language' in languages class im not sure why throwing error. works when declare such :
languages lanobj = new lanaguages();
//languages class
public class languages implements java.io.serializable { private string language; private string displayname; public languages() { this.language = null; this.displayname = null; } public languages(string language, string displayname) { this.language = language; this.displayname = displayname; } public void setlanguageid(long languageid) { this.languageid = languageid; } @column(name = "language", nullable = false, length = 50) public string getlanguage() { return this.language; } public void setlanguage(string language) { this.language = language; } @column(name = "displayname", nullable = false, length = 50) public string getdisplayname() { return this.displayname; } public void setdisplayname(string displayname) { this.displayname = displayname; } } ///resource manager code
@path("{subresources}/insertobj/{language-id}/{displayname-id}") //@post @get // using sake of making rest call browser @produces(mediatype.text_html) public string getlanguagebyid(@pathparam("subresources") string id, @pathparam("language-id") string language_id, @pathparam("displayname-id") string displayname_id) { try{ class<?> c = class.forname("com.test."+id); propertyutils.setproperty(c, "language",language_id); propertyutils.setproperty(c, "displayname",displayname_id); transactionmanager.createobject(c); }catch (exception exc){ exc.printstacktrace(); } } //transactionmanager snippet:
public static void createobject(object entityobject) { transaction tx = null; //sessionfactoryutil.getinstance().opensession(); session session = sessionfactoryutil.opensession(); try { tx = session.begintransaction(); session.save(entityobject); tx.commit(); } catch (runtimeexception e) { if (tx != null && tx.isactive()) { try { // second try catch rollback fail tx.rollback(); } catch (hibernateexception e1) { //logger.debug(“error rolling transaction”); } // throw again first exception throw e; } } { session.close(); } }
setproperty needs instance whereas passing class, see documentation
class<?> c = class.forname("com.test."+id); language language = (language)c.newinstance(); propertyutils.setproperty(language , "language",language_id); either specificially cast language or else can leave object
object object = class.forname("com.test."+id).newinstance(); propertyutils.setproperty(object, "language",language_id);
Comments
Post a Comment