Jak poprawnie uzyc typu int[] z postresql uzywajac hibernate?
Zalezy mi na tym, aby nie tworzyc nowej tabeli (tylko kolumne) w bazie danych aby trzymac kolekcje intow w bazie danych.
0
0
Zserializować tablicę intów do JSONa i zapisać jako string.
Edit:
Aczkolwiek to tez zależy co ta tablica ma przechowywać.
0
@MrMadMatt: cos w stylu [1,2] , [1], [1,3]
Podasz jakis przyklad?
0
Postgres wspiera natywnie array typy, a co do kopania się z Hibernate to pewnie można znaleźć coś w necie, np:
https://www.baeldung.com/java-hibernate-map-postgresql-array
https://stackoverflow.com/questions/1647583/how-to-map-a-postgresql-array-with-hibernate
0
Pomysł byłby mniej więcej taki:
class MyDomainEntity {
Long databaseId;
String name;
List<Integer> magicNumberCollection;
//..getters setters
}
class MyDatabaseEntity {
Long databaseId;
String name;
String magicNumberCollection;
//..getters setters
}
class MyDomainWriteService {
Gson gson = new GsonBuilder().create();
void save(MyDomainEntity myDomain) {
// map to db entity
MyDatabaseEntity toSave = new MyDatabaseEntity();
toSave.setDatabaseId(myDomain.getDatabaseId());
toSave.setName(myDomain.getName());
toSave.setMagicNumberCollection(gson.toJson(myDomain));
repository.save(toSave);
}
}
Ale od razu zaznaczam że pewnie da się to jakoś bardziej elegancko ogarnąć.