Próbuję skonfigurować prosty wzór EAV w mojej aplikacji internetowej przy użyciu Java/Spring MVC i Hibernate. Nie potrafię zrozumieć magii konfiguracji hibernacji XML dla tego scenariusza.Implementacja wzoru EAV z Hibernate dla użytkownika -> Ustawienia relacji
Moja baza stół "SETUP" ma trzy kolumny:
- user_id (FK)
- setup_item
- setup_value
Klucz kompozytowa baza danych składa się z user_id | setup_item
Oto klasa Setup.java:
public class Setup implements CommonFormElements, Serializable {
private Map data = new HashMap();
private String saveAction;
private Integer speciesNamingList;
private User user;
Logger log = LoggerFactory.getLogger(Setup.class);
public String getSaveAction() {
return saveAction;
}
public void setSaveAction(String action) {
this.saveAction = action;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Integer getSpeciesNamingList() {
return speciesNamingList;
}
public void setSpeciesNamingList(Integer speciesNamingList) {
this.speciesNamingList = speciesNamingList;
}
public Map getData() {
return data;
}
public void setData(Map data) {
this.data = data;
}
}
Mój problem z konfiguracji hibernacji, jest to, że nie może wydawać się, aby dowiedzieć się jak mapować uwagę na fakt, że klucz obcy i klucz mapy utworzy złożony klucz tabeli ... wynika to z braku doświadczenia przy korzystaniu z Hibernate. Oto moja pierwsza próba w coraz to do pracy:
<composite-id>
<key-many-to-one foreign-key="id" name="user" column="user_id" class="Business.User">
<meta attribute="use-in-equals">true</meta>
</key-many-to-one>
</composite-id>
<map lazy="false" name="data" table="setup">
<key column="user_id" property-ref="user"/>
<composite-map-key class="Command.Setup">
<key-property name="data" column="setup_item" type="string"/>
</composite-map-key>
<element column="setup_value" not-null="true" type="string"/>
</map>
Każdy wgląd w jaki sposób poprawnie map to wspólny scenariusz byłby najbardziej mile widziane!
@Trevor Witaj, ale jeśli zobaczysz użyteczną odpowiedź, UPvote, Dzięki! –