This doesn't answer your question exactly, but it might be easier to use an Int32 property in your class and mapping, and use a static class of constants like this to handle the values in code:
public static class Permissions
{
public const int CanComment = 0x1;
public const int CanEdit = 0x2;
public const int CanDelete = 0x4;
public const int CanRemoveUsers = 0x8;
public const int All = CanComment | CanEdit | CanDelete | CanRemoveUsers;
}
I know this is not ideal, since it doesn't restrict your users to the fixed enum values, and forces you to deal with raw ints in code, but I think Hibernate will have trouble with a bitwise enum. It will try to map a value in the database back to a specific enum value. If it finds a value in the database which you have not explicitly enumerated it will probably choke. E.g. if it finds a "3" in the database, it won't be able to map it back to an enum value, unless you explicitly enumerate every combination, like CanCommentAndEdit, CanCommentAndEditAndDelete, etc. This probably defeats the purpose of using the bitwise enum.