に@JoinColumnとSpringのエンティティを受信:は、私はこれらのテーブルを持ってRESTfulなWebサービス
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)
);
私はJSONsを受信して、いくつかの検証後、データベースに保存します春を使用してRESTfulなWebサービスを構築する必要があります。たとえば、iddoc = 2
のレコードがref.doc
にあります。だから、person
のためのJSONは次のようになります。
{
"name": "John",
"doctype": 2
}
そして、私はこのような何かやりたい:
@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;
}
}
私はこれらのエンティティを持っている:
@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;
...
}
そして中doc
この場合はperson
は常にnull
であり、かなり理解できる。しかし、私が必要とする行動をどのように実装するのですか?