我有三个类,其中一个是不可变的键。
@Entity
public class Key {
@Id
@GeneratedValue
private Integer id;
private int x;
private int z;
@OneToMany(??)
private Person person;
@OneToMany(??,fetch = FetchType.LAZY)
private Building building;
@Transient
private int hashcode;
.... getters, setters, overrided hascode and equals methods
}
第二个只是一个用jpa注释注释的标准类。所有类之间也存在双向映射。
@Entity
public class Person {
@Id
@GeneratedValue
private Long key;
@ManyToOne(mappedBy = "person")
private Set<Key> keys;
@OneToMany(??,fetch = FetchType.LAZY)
private Building building;
.... getters, setteres
}
第三类也是一个jpa实体,它包含对hashmap中所有键和人的引用。如果我想保持双向映射,是否可以用jpa和hibernate映射我的类?我的结构是否被认为是一个很好的实践,或者我应该删除双向映射,但我宁愿保留它
@Entity 公共课建筑{
@JoinTable (??)/something else
Map<Key, Person> map;
}