Я пытаюсь добавить arraylist двойных значений в мою базу данных mysql, используя JPA и Hibernate, но он не сохраняет значения как удваивает, он хранит объект arraylist, а затем много персонажи.Хранение arraylist в базе данных mysql с использованием JPA
Образ ниже, как выглядит база данных.
Вот мой код:
Playlist.java
@Entity
public class Playlist {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String name, persistentId;
private double playlistId;
@ElementCollection
@CollectionTable(name ="tracks")
private ArrayList<Double> tracks = new ArrayList<Double>();
@OneToMany(mappedBy="playlist")
Set<Song> songs;
public Playlist(String name, String persistentId, double playlistId, ArrayList<Double> tracks) {
this.name = name;
this.persistentId = persistentId;
this.playlistId = playlistId;
this.tracks = tracks;
}
public Playlist() {
}
Main.java
Playlist p = new Playlist();
ArrayList<Double> tracks = new ArrayList<Double>();
for (int j = 0; j < tList.getLength(); ++j) {
Element track = (Element) tList.item(j);
Double trackId = (Double) x.evaluate("key[.='Track ID']/following-sibling::integer[1]", track,
XPathConstants.NUMBER);
tracks.add(trackId);
p.setTracks(tracks);
}
Может кто-нибудь сказать мне, что я делаю неправильно, пожалуйста?
ваше «изображение» - это куча дерьма; как вы думаете, что кто-нибудь поможет? –
@NeilStockton Я хотел показать это, потому что это не должно выглядеть так. Он должен показывать числовые значения. – ariella123
Почему бы не начать с предоставления ОПРЕДЕЛЕНИЯ DDL для таблиц в хранилище данных, а не в этом? поэтому вы видите, что он правильно отобразил БД. Если он создал BLOB для этого столбца, то Hibernate сначала ошибается, поэтому сосредоточьтесь на своем сопоставлении, а не на коде сохранения. Также укажите, какой тип «ArrayList» ... java.util? затем просмотрите журнал вашей реализации JPA, чтобы узнать, почему он сопоставляет его с BLOB (неправильно) –