test.json:
Код: Выделить всё
{
"workID": 12355,
"contributors":
[
{
"fullName": "UNKNOWN 1",
"workContributorID": 1100933315,
"workID": 12355
},
{
"fullName": "UNKNOWN 2",
"workContributorID": 1100933314,
"workID": 12355
}
]
}
Код: Выделить всё
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Entity
@Table(name = "contributor")
public class Contributor {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long workContributorID;
private String fullName;
@ManyToOne
@JoinColumn(name = "work_id", referencedColumnName = "id")
private WorkSP workID;
}
Код: Выделить всё
import jakarta.persistence.*;
import lombok.Getter;
import lombok.Setter;
import java.util.ArrayList;
@Getter
@Setter
@Entity
@Table(name = "work_sp")
public class WorkSP {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long workID;
private ArrayList contributors;
public WorkSP(long asLong) {
this.workID = asLong;
}
}
Код: Выделить всё
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializer;
import com.google.gson.stream.JsonReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
public class App
{
public static void main( String[] args ) throws FileNotFoundException {
JsonReader readerTest = new JsonReader(new FileReader("test.json"));
Gson gSonInstance = new GsonBuilder().
registerTypeAdapter(WorkSP.class, (JsonDeserializer) (json, type, jsonDeserializationContext) -> {
return new WorkSP(json.getAsJsonObject().getAsLong());
}).
create();
WorkSP work = gSonInstance.fromJson(readerTest, WorkSP.class);
}
}
Код: Выделить всё
Exception in thread "main" java.lang.UnsupportedOperationException: JsonObject
at com.google.gson.JsonElement.getAsLong(JsonElement.java:294)
at org.example.App.lambda$main$0(App.java:21)
at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:95)
at com.google.gson.Gson.fromJson(Gson.java:1361)
at com.google.gson.Gson.fromJson(Gson.java:1306)
at org.example.App.main(App.java:24)
Подробнее здесь: https://stackoverflow.com/questions/786 ... ersistence
Мобильная версия