X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fdemoscenemusic%2Fdata%2FDataManager.java;h=8d331cb725bf160d0a45899bdb6081c3ac63caf5;hb=6bdfd09158a7d212e47ee96ed89dc91a91dad668;hp=f5b071f6c3a1aef023ddd4d32c53b35e9192be4f;hpb=914852381662c9d29d504cf51efbd2073e32c265;p=demoscenemusic.git diff --git a/src/main/java/net/pterodactylus/demoscenemusic/data/DataManager.java b/src/main/java/net/pterodactylus/demoscenemusic/data/DataManager.java index f5b071f..8d331cb 100644 --- a/src/main/java/net/pterodactylus/demoscenemusic/data/DataManager.java +++ b/src/main/java/net/pterodactylus/demoscenemusic/data/DataManager.java @@ -190,6 +190,20 @@ public class DataManager { query.addValueField(new ValueField("NAME", new StringParameter(artist.getName()))); query.addWhereClause(new ValueFieldWhereClause(new ValueField("ID", new StringParameter(artist.getId())))); database.update(query); + + /* save groups. */ + Collection groups = artist.getGroups(); + query = new Query(Type.DELETE, "GROUP_ARTISTS"); + query.addWhereClause(new ValueFieldWhereClause(new ValueField("GROUP_ARTISTS.ARTIST", new StringParameter(artist.getId())))); + database.update(query); + for (Group group : groups) { + query = new Query(Type.INSERT, "GROUP_ARTISTS"); + query.addValueField(new ValueField("GROUP_", new StringParameter(group.getId()))); + query.addValueField(new ValueField("ARTIST", new StringParameter(artist.getId()))); + database.insert(query); + } + + /* save properties. */ saveArtistProperties(artist); } @@ -808,6 +822,9 @@ public class DataManager { * if a database error occurs */ private T loadProperties(final T object, final String table, String type) throws DatabaseException { + if (object == null) { + return null; + } Query query = new Query(Type.SELECT, table); query.addField(new Field(table + ".PROPERTY")); query.addField(new Field(table + ".VALUE"));