java如何在hibernate实体中使用瞬态字段作为映射的键?
我需要有一个项目的映射,但我需要设置“键”的项目是暂时的,hibernate无法将其设置为“键”。我怎么做
@Entity
@AssociationOverrides({
@AssociationOverride(name = "rela.city",
joinColumns = @JoinColumn(name = "cityId")),
@AssociationOverride(name = "rela.person",
joinColumns = @JoinColumn(name = "id")),
@AssociationOverride(name = "rela.social",
joinColumns = @JoinColumn(name = "code")) })
public class Person implements java.io.Serializable {
@EmbeddedId
private RelationshipId rela = new RelationshipId();
@Transient
public String getCode(){
return rela.getSocial().geCode();
}
....
}
@Entity
public class City implements java.io.Serializable {
@OneToMany(fetch = FetchType.LAZY,
mappedBy = "rela.city", cascade = CascadeType.ALL)
@MapKey(name = "code")
Map<String, Person> People = new HashMap<>();
....
}
正如您所看到的,我想使代码成为映射的键,但它不起作用,因为代码是瞬态的
共 (0) 个答案