Как установить внешний ключ через контроллер в java j2ee? - PullRequest
0 голосов
/ 28 мая 2018

У меня есть две таблицы клиентов и контакта:

public class Contacts implements Serializable{

    @Id
    @GeneratedValue
    private Long idContacts;


    private String nomContacts;
    private String prenomContacts;
    private String telephone;
    private String autreTelephone;
    private String fax;
    private String email;
    private int deleted = 0;


    @ManyToOne(cascade = CascadeType.PERSIST)
    @JoinColumn(name = "idClient")
    private Client client;
}

, и я объявил экземпляр Contact:

Contacts contact = new Contacts() 

Как установить внешний ключ Contact вручную, я попытался:contact.getClient().setIdClient(1) и это не сработало.

1 Ответ

0 голосов
/ 28 мая 2018

Основная цель JPA - избегать ручного манипулирования ключами отношений;вместо этого просто используйте обычные ссылки на Java.Для того, что вы пытаетесь сделать:

Client clientOne = clients.find(1L); // or get the client some other way
contact.setClient(clientOne);

Обратите внимание, что Spring Data (в дополнение к автоматически реализованным репозиториям) предоставляет конвертер, так что если у вас есть аргумент метода для вашего контроллера, который ссылается на существующий объектID, вы можете передать сам объект вместо поиска вручную:

@GetMapping("/clients/{id}")
public Client getClient(@PathVariable("id") Client client) {
    return client;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...