Ich habe diese Tabellen:Erhalten Spring Entity mit @JoinColumn in RESTful Web Service
CREATE TABLE ref.doc (
id serial PRIMARY KEY,
iddoc integer NOT NULL UNIQUE,
docname varchar(254) NOT NULL
);
CREATE TABLE person (
id serial PRIMARY KEY,
name varchar(40) DEFAULT NULL,
doctype integer DEFAULT NULL REFERENCES ref.doc(iddoc)
);
Ich brauche einen RESTful Web-Service mit Spring zu bauen, die JSONs und speichert sie in der Datenbank nach einer gewissen Überprüfung empfängt. Zum Beispiel gibt es einen Datensatz mit iddoc = 2
in ref.doc
. So ist die JSON für person
sieht wie folgt aus:
{
"name": "John",
"doctype": 2
}
Und ich möchte etwas tun:
@RestController
public class PersonController {
@Autowired
PersonRepository personRepository;
@Transactional
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public Person add(@RequestBody Person person) {
// some logic
personRepository.saveAndFlush(person);
return person;
}
}
Ich habe diese Entitäten:
@Entity
@Table(schema = "ref")
public class Doc {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
private Integer iddoc;
private String docname;
...
}
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
private String name;
@ManyToOne
@JoinColumn(name = "doctype", referencedColumnName = "iddoc", nullable = false)
private Doc doc;
...
}
Und in diesem Fall doc
in person
ist immer null
, und es ist ziemlich verständlich. Aber wie implementiert man das Verhalten, das ich brauche?