java - Using a HashMap in Hibernate Many-to-Many mapping. Hibernate could not find mapKey -


would possible declare hashmap in following object called group?

doing doesn't work:

@onetomany(fetch = fetchtype.eager, cascade = cascadetype.all, mappedby = "group") @mapkey(name = "member.name") private map<string, groupmember> groupmembers = new hashmap<string, groupmember>(); 

stacktrace:

12:07:51 [info] [groups] enabling groups v0.1 12:07:51 [severe] error occurred while enabling groups v0.1 (is date?) java.lang.runtimeexception: exception has occured while initializing database         @ groups.storage.mydatabase.initializedatabase(mydatabase.java:83)         @ groups.storage.dao.<init>(dao.java:26)         @ groups.groups.onenable(groups.java:30)         @ org.bukkit.plugin.java.javaplugin.setenabled(javaplugin.java:217)         @ org.bukkit.plugin.java.javapluginloader.enableplugin(javapluginloader.java:457)         @ org.bukkit.plugin.simplepluginmanager.enableplugin(simplepluginmanager.java:381)         @ org.bukkit.craftbukkit.v1_5_r2.craftserver.loadplugin(craftserver.java:282)         @ org.bukkit.craftbukkit.v1_5_r2.craftserver.enableplugins(craftserver.java:264)         @ org.bukkit.craftbukkit.v1_5_r2.craftserver.reload(craftserver.java:605)         @ org.bukkit.bukkit.reload(bukkit.java:184)         @ org.bukkit.command.defaults.reloadcommand.execute(reloadcommand.java:23)         @ org.bukkit.command.simplecommandmap.dispatch(simplecommandmap.java:188)         @ org.bukkit.craftbukkit.v1_5_r2.craftserver.dispatchcommand(craftserver.java:523)         @ org.bukkit.craftbukkit.v1_5_r2.craftserver.dispatchservercommand(craftserver.java:512)         @ net.minecraft.server.v1_5_r2.dedicatedserver.am(dedicatedserver.java:261)         @ net.minecraft.server.v1_5_r2.dedicatedserver.r(dedicatedserver.java:226)         @ net.minecraft.server.v1_5_r2.minecraftserver.q(minecraftserver.java:474)         @ net.minecraft.server.v1_5_r2.minecraftserver.run(minecraftserver.java:407)         @ net.minecraft.server.v1_5_r2.threadserverapplication.run(sourcefile:573) caused by: java.lang.runtimeexception: failed create new instance of ebeanserver         @ groups.storage.mydatabase.loaddatabase(mydatabase.java:162)         @ groups.storage.mydatabase.initializedatabase(mydatabase.java:77)         ... 18 more caused by: javax.persistence.persistenceexception: groups.model.group: not find mapkey property [member.name] on [groups.model.groupmember]         @ com.avaje.ebeaninternal.server.deploy.beanpropertyassocmany.initmapkeyproperty(beanpropertyassocmany.java:744)         @ com.avaje.ebeaninternal.server.deploy.beanpropertyassocmany.initialise(beanpropertyassocmany.java:147)         @ com.avaje.ebeaninternal.server.deploy.beandescriptor.initialiseother(beandescriptor.java:763)         @ com.avaje.ebeaninternal.server.deploy.beandescriptormanager.initialiseall(beandescriptormanager.java:403)         @ com.avaje.ebeaninternal.server.deploy.beandescriptormanager.deploy(beandescriptormanager.java:293)         @ com.avaje.ebeaninternal.server.core.internalconfiguration.<init>(internalconfiguration.java:150)         @ com.avaje.ebeaninternal.server.core.defaultserverfactory.createserver(defaultserverfactory.java:209)         @ com.avaje.ebeaninternal.server.core.defaultserverfactory.createserver(defaultserverfactory.java:64)         @ com.avaje.ebean.ebeanserverfactory.create(ebeanserverfactory.java:78)         @ groups.storage.mydatabase.loaddatabase(mydatabase.java:159)         ... 19 more 

...

@entity @table(name = "groups_group") public class group {      public enum type {         include,         exclude     }      @id     @generatedvalue     @column(name = "id", unique = true, nullable = false)     private integer id;      @column(name = "name", unique = true, nullable = false, length = 25)     private string name;      @onetomany(fetch = fetchtype.eager, cascade = cascadetype.all, mappedby = "group")     @mapkey(name = "member.name")     private map<string, groupmember> groupmembers = new hashmap<string, groupmember>();      @column(name = "personal", nullable = false)     private boolean personal = false;      @enumerated(value = enumtype.ordinal)     @column(name = "type", nullable = false, length = 2)     private type type = type.include;      @column(name = "password", nullable = true, length = 16)     private string password;      @version     @column(name = "update_time", nullable = false)     timestamp updatetime;      @createdtimestamp     @column(name = "create_time", nullable = false)     timestamp createtime;      public group() {}      //getters , setters } 

..

@entity @table(name = "groups_group_member") public class groupmember {      public enum role {         admin,         moderator,         member,         banned     }      @id     @generatedvalue     @column(name = "id", unique = true, nullable = false)     private integer id;      @manytoone     @joincolumn(name = "group_id")     private group group;      @manytoone     @joincolumn(name = "member_id")     private member member;      @enumerated(value = enumtype.ordinal)     @column(name = "role", nullable = false, length = 2)     private role role = role.member;      @version     @column(name = "update_time", nullable = false)     timestamp updatetime;      @createdtimestamp     @column(name = "create_time", nullable = false)     timestamp createtime;      public groupmember() {}          //getters , setters... } 

...

@entity @table(name = "groups_member") public class member {      @id     @generatedvalue     @column(name = "id", unique = true, nullable = false)     private integer id;      @column(name = "name", unique = true, nullable = false, length = 16)     private string name;      @onetomany(fetch = fetchtype.eager, cascade = cascadetype.all, mappedby = "member")     private set<groupmember> groupmembers = new hashset<groupmember>();      @version     @column(name = "update_time", nullable = false)     timestamp updatetime;      @createdtimestamp     @column(name = "create_time", nullable = false)     timestamp createtime;      public member() {}  //getters , setters } 


Comments