数据库布局:
USER_PREF_VAL
USER
PREF_VAL
PREF
varchar标签
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(
name="CMS_USER_PREFERENCE_VALUE",
joinColumns = @JoinColumn( name="user_id" ),
inverseJoinColumns = @JoinColumn( name="value_id")
)
@Cascade({org.hibernate.annotations.CascadeType.DELETE_ORPHAN})
@MapKey(name = "preference")
public Map<PreferenceEntity, PreferenceValueEntity> getPreferences(){
return map;
}
protected void setPreferences(Map<PreferenceEntity, PreferenceValueEntity> mp){
map = mp;
}
public void addPreference(PreferenceEntity pe,PreferenceValueEntity pve){
map.put(pe,pve);
}
我的问题是,在使用getPreferences()
提取信息时我从USER_PREF_VAL获取正确的项目映射 即:MAP / PreferenceEntity,ValueEntity \
然而,当我进行添加时,在数据库中它将创建一行,例如:
USER_ID,PREFERENCE_ID,NULL
任何有关如何获得可能插入该值的帮助都将非常感激。另外我知道传递给ValueEntity的值不是null。
谢谢