У меня есть две сущности Статья и Статья Описание
@Entity
public class Article {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int articleId;
private String name;
private String manufactor;
private float price;
@ManyToOne
private ArticleDescription articleDescription;
@Entity
public class ArticleDescription {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int articleDescriptionId;
private String text;
private String author;
// Joshua
@ManyToOne
private Article article;
Я хочу что-то вроде этого:
[
{
"articleId": "5",
"manufactor": "Test",
"name": "Name",
"price": "50",
"ArticleDescription": {
"articleDescriptionId": "5",
"test": "Text",
"author": "Author"
}
]
У меня также есть ArticleJpaRepository и ArticleController:
public interface ArticleJpaRepository extends JpaRepository<Article, Integer> {
List<Article> findByName(String name);
List<Article> findByManufactor(String manufactor);
List<Article> findByPrice(float price);
}
@ComponentScan
@RestController
public class ArticleController {
@Autowired
private ArticleJpaRepository articleJpaRepository;
@GetMapping("/articles")
@ResponseBody
public List<Article> getArticles() {
return articleJpaRepository.findAll();
}
// Optional, falls kein Customer gefunden wird.
@RequestMapping("/article/{articleId}")
@ResponseBody
public Optional<Article> getArticle(@PathVariable("articleId") int articleId) {
return articleJpaRepository.findById(articleId);
}
// Client to Server
// POST über z.B. Postman Client
@PostMapping("/article")
public Article addArticle(@RequestBody Article article) {
articleJpaRepository.save(article);
return article;
}
@DeleteMapping("/article/{articleId}")
public String deleteArticle(@PathVariable int articleId) {
Article a = articleJpaRepository.getOne(articleId);
articleJpaRepository.delete(a);
return "deleted";
}
@PutMapping("/customer")
public Article updateArticle(@RequestBody Article article) {
articleJpaRepository.save(article);
return article;
}
Я ожидаю, что когда я добавлю articleDescriptionId к статье в SQL, к которой они подключатся. Но я не знаю, где я настраиваю это поведение. Когда я хочу добавить внешний ключ article_description в статью, я получаю сообщение об ошибке.
"Referential integrity constraint violation:
Оператор SQL:
INSERT INTO article (article_Id, manufactor, name, price, ARTICLE_DESCRIPTION_ARTICLE_DESCRIPTION_ID)
VALUES ('1000', 'koezocakbasi', 'Dürüm', '4.90', '1000'),
('1001', 'koezocakbasi', 'Döner', '4.50', '1001'),
('1002', 'koezocakbasi', 'DönerTeller', '10.90', '1002');
INSERT INTO article_description (article_Description_Id, author, text)
VALUES ('1000', 'koezocakbasi', 'Dürüm'),
('1001', 'koezocakbasi', 'Döner'),
('1002', 'koezocakbasi', 'DönerTeller');