kirill, this new functionality is only available from the tip of the
0.8 or master branch - there hasn't been a build on HOM for release
yet. what version are you using?
@Entity
@Table(name = "configs")
public class ConfigModel extends JsonModel {
public static String IDX_CONFIGNAME = "configname";
@Id
private String configname;
@Column(name = "subnamespaces")
private List<String> subnamespaces = new ArrayList<String>();
private Map<String,String> anonymousProps = new HashMap<String,String>();
@AnonymousPropertyAddHandler
public void addAnonymousProp(String name, String value){
anonymousProps.put(name, value);
}
@AnonymousPropertyCollectionGetter
public Collection<Entry<String, String>> getAnonymousProps() {
return anonymousProps.entrySet();
}
public String getAnonymousProp(String name) {
return anonymousProps.get(name);
}
public String getConfigname() {
return configname;
}
public void setConfigname(String configname) {
this.configname = configname;
}
public List<String> getSubnamespaces() {
return subnamespaces;
}
public void setSubnamespaces(List<String> subnamespaces) {
this.subnamespaces = subnamespaces;
}
}
Saving seems to work ok, but as with the previous user I get the following exception when i try to load:
java.lang.RuntimeException: unsupported property type, java.util.List
at me.prettyprint.hom.HectorObjectMapper.determineSerializer(HectorObjectMapper.java:605)
at me.prettyprint.hom.converters.DefaultConverter.convertCassTypeToObjType(DefaultConverter.java:18)
at me.prettyprint.hom.HectorObjectMapper.setPropertyUsingColumn(HectorObjectMapper.java:574)
at me.prettyprint.hom.HectorObjectMapper.createObject(HectorObjectMapper.java:250)
at me.prettyprint.hom.HectorObjectMapper.getObject(HectorObjectMapper.java:112)
at me.prettyprint.hom.EntityManagerImpl.load(EntityManagerImpl.java:125)
at com.twolemetry.dao.ConfigsDAO.getConfigModel(ConfigsDAO.java:45)
at com.twolemetry.dao.tests.DAOTests.saveAndGetConfigs(DAOTests.java:147)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
I am using hector-object-mapper-2.0-01.jar
Thanks.