Mapowanie mapy

JJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

Cześć Wam.
Prośba o wsparcie… Mam taką tablicę,w której jest @CollectionTable, do której chcę się dostać...

@Getter
@Setter

public class Mp {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "mp_id", updatable = false, nullable = false)
private Long id;

@ElementCollection(fetch = FetchType.LAZY)
@MapKeyColumn(name="name")
@Column(name="value")
@CollectionTable(name="mp_attributes", joinColumns=@JoinColumn(name="mp_id"))
private Map<String, String> mojamapa = new HashMap<>();

}

Chcę teraz przymapować coś tylko do kolumny "name".. (Chce zrobić "set name" tylko)
Czyli mp.
Mp mp = new Mp();
mp.SetMojamapa….

i nie wiem jak to teraz napisać...
Dzięki!

Charles_Ray
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1907
2

Daj sobie spokój, zrób one-to-many/@ElementCollection na liście i skonwertuj na mapę w domenie.

JJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

Muszę to zrobić tak :(

CH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 20
1

Co znaczy przymapować coś do kolumny name? Wstawić nową wartość dla tego klucza, czy podmienić klucz?

SG
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0
chivy napisał(a):

Co znaczy przymapować coś do kolumny name? Wstawić nową wartość dla tego klucza, czy podmienić klucz?

Chcę wstawić tylko klucz.. set Key.. Nie chcę robić "puta"

CH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 20
2

Z tego co rozumiem, chcesz podmienić klucz w danym Entry z mapy. W takim wypadku, jedynym rozwiązaniem jest chyba podmiana całego entry, z nowym kluczem.

Niestety ostatnio natknąłem się na problem jaki nasze kochane JPA sprawia, a mianowicie, że niedozwolone jest podmienianie kolekcji w encjach hajbernejtowych, więc nie wiem jak ta podmiana się zachowa. Możesz spróbować

SG
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0

Dzięki.Cenne.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.