How to use the reverse() and through() values for the @ManyToMany annotation?
Example;
@Table("KeychainUser") public interface KeychainUserAO extends Entity { @ManyToMany(value = UserAuthorizationAO.class, through = "getKeychainUser", reverse = "getUsers") PermissionAO[] getPermissions(); // next class, the 'through' class? @Table("UserAuthorization") public interface UserAuthorizationAO extends Entity { void setKeychainUser(KeychainUserAO keychainUser); KeychainUserAO getKeychainUser(); void setPermission(PermissionAO permission); PermissionAO getPermission(); } // the 'reverse' class? @Table("Permission") public interface PermissionAO extends Entity { @ManyToMany(value = UserAuthorizationAO.class, through = "getPermission", reverse = "getPermissions") KeychainUserAO[] getUsers(); } // exception java.lang.IllegalArgumentException: public abstract nl.avisi.confluence.plugins.keychain.model.ao.KeychainUserAO[] nl.avisi.confluence.plugins.keychain.model.ao.PermissionAO.getUsers() has a ManyToMany annotation with an invalid reverse element value. It must be the name of the corresponding getter method on the joining entity.
This doesn't work.
Answer below;
KeychainUser class
@ManyToMany(value = UserAuthorizationAO.class, through = "getPermission", reverse = "getKeychainUser") PermissionAO[] getPermissions();
UserAuthorization class
void setKeychainUser(KeychainUserAO keychainUser); KeychainUserAO getKeychainUser(); void setPermission(PermissionAO permission); PermissionAO getPermission();
Permission class
@ManyToMany(value = UserAuthorizationAO.class, through = "getKeychainUser", reverse = "getPermission") KeychainUserAO[] getUsers();
Hi Patrick,
I'm not sure, but I think this should be:
@Table("KeychainUser") public interface KeychainUserAO extends Entity { @ManyToMany(value = UserAuthorizationAO.class, through = "getKeychainUser", reverse = "getPermission") PermissionAO[] getPermissions(); } @Table("UserAuthorization") public interface UserAuthorizationAO extends Entity { void setKeychainUser(KeychainUserAO keychainUser); KeychainUserAO getKeychainUser(); void setPermission(PermissionAO permission); PermissionAO getPermission(); } @Table("Permission") public interface PermissionAO extends Entity { @ManyToMany(value = UserAuthorizationAO.class, through = "getPermission", reverse = "getKeychainUser") KeychainUserAO[] getUsers(); }
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks for your answer! I'll try this once I've got the time for it.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.