Использование java.util.HashMap с Hibernate с ключом в качестве некоторого класса и значением в качестве ArrayList объектов - PullRequest
3 голосов
/ 11 июля 2011

Я определенно прочитал большинство сообщений об этом в google и stackoverflow, но у меня нет четкого представления об этом.

Сценарий:

public enum UserLicenseType {
    DEMO_LICENSE1,DEMO_LICENSE2
}

@Entity(name = "UserLicense")

public class UserLicense implements Serializable{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private UserLicenseType licenseType;

    @LazyCollection(LazyCollectionOption.FALSE)
    @OneToMany(cascade=CascadeType.ALL)
    private List<Permission> permissions;

    // getters and setters...

}

public enum PermissionType {
    DEMO_PERMISSION1,DEMO_PERMISSION2
}

@Entity(name = "Permission")
public class Permission implements Serializable{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private PermissionType permissionType;
}


@Entity(name = "UserProfile")
public class UserProfile implements Serializable{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @LazyCollection(LazyCollectionOption.FALSE)
    @CollectionOfElements
    Map<UserLicense, ArrayList<Permission>> permissionForLicense;
}

База данныхсоздана таблица, соответствующая Map {UserLicense, ArrayList {Permission} }missionsForForicense имеет три поля

  1. UserProfile_Id: type = int
  2. элемент: type = tinyblob
  3. missionForLicense_Key: type = int

Концы сценариев

Прежде всего можно использовать Map {UserLicense, ArrayList {Permission}} вид структуры.

Если да, в чем я не прав?

Если нет, укажите лучший объектно-ориентированный способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...