metadata - How to get the PC object's table name with Datanucleus v3.2? -


edit-this answer code mistakenly used editing metadata. reading it, use following:

pmf.getmetadata(machineclass.getname()).gettable() 

i've been doing long time using previous datanucleus versions i'm not sure why isn't working anymore v3.2

this code doesn't work because getmetadataforclass method returns null !

nucleusjdohelper.getmetadataforclass(pmf, clazz).gettable() 

where pmf persistencemanagerfactory , clazz class<?> object representing class type of pc (i.e. persistence capable) object need retrieve table name for.

i'm using annotations define mappings.

to create persistencemanagerfactory, i'm using following code:

jdohelper.getpersistencemanagerfactory(new fileinputstream(filepath)); 

where filepath path properties file enough data has been used long time without change.

edit: neil's answer, switched using following code sequence:

jdometadata md = pmf.newmetadata(); packagemetadata pmd = md.newpackagemetadata(clazz.getpackage()); classmetadata cmd = pmd.newclassmetadata(clazz); return cmd.gettable(); 

i made sure class i'm inspecting having proper metadata

@persistencecapable(table = "machine_table", detachable = "true", cacheable = "true") public class machine { 

now cmd.gettable() returns null !

why use internal (unsupported?) api when jdo has had metadata api since jdo v2.x iirc? 1 here http://www.datanucleus.org/products/accessplatform_3_3/jdo/metadata_api.html


Comments

Popular posts from this blog

java - activate/deactivate sonar maven plugin by profile? -

python - TypeError: can only concatenate tuple (not "float") to tuple -

java - What is the difference between String. and String.this. ? -