java Hibernate:在调用另一个方法并将其转换为字符串后,将列表<String>插入数据库:将整个列表保存在单个单元格中
假设我使用Hibernate将这个类插入PostgreSQL数据库:
@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
表,其中pets值为Utils.listToString(user.getPets())
。使用Hibernate可以实现吗
编辑:
我对代码做了这些修改
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
编辑:
我希望所有内容都保存在同一个名为pets的表中,我希望列表中的所有元素都保存在一个单元格中,在表的同一行、同一列中
共 (0) 个答案