Предположим, у меня есть этот класс, который я пытаюсь вставить в базу данных PostgreSQL, используя Hibernate:
@Entity
@Table(name = "users")
public class User {
private String name;
private String email;
private List<String> pets = new ArrayList<>(); //pets get added later
//getters, setters, adders
}
В другом файле:
public class Utils {
public static String listToString(List<?> list, String separator) {
String result = "";
for (Object e: list) {
result += e.toString() + separator;
}
return result == "" ? result : result.substring(0, result.lastIndexOf(separator));
}
}
Я хочу пользователя быть сопоставленным с таблицей name email pets
, где домашние животные имеют значение Utils.listToString(user.getPets())
. Можно ли достичь с помощью Hibernate?
EDIT :
Я внес эти изменения в код
private List<String> pets= new CustomArrayList();
public class CustomArrayList extends ArrayList<String> implements List<String> {
@Override
public String toString() {
return Utils.listToString(this, "\n");
}
}
При использовании CustomArrayList
облегчает достижение, как заставить Hibernate вызывать toString
при сохранении в дБ?
EDIT :
Я хочу, чтобы все было сохранено в той же таблице, называемой домашними животными , я хочу, чтобы все элементы списка были сохранены в одной ячейке, в той же строке, в том же столбце таблица.