Как использовать переменную внешнего ключа без записи указанного столбца внешнего ключа c в классе сущности? - PullRequest
0 голосов
/ 09 июля 2020

У меня есть следующая сущность «Пользователь», где поле «companyId» является внешним ключом:

@Entity
@Table(name = "Users")
@Getter @Setter @ToString
public class User {

@Id
@GeneratedValue
private long id;

@Column(name = "company_id")
private Long companyId;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "company_id", insertable = false, updatable = false)
private Company company;

Сущность компании:

@Entity
@Table(name = "Companies")
@Getter @Setter @ToString
public class Company {

    @Id
    @GeneratedValue
    private long id;
      
    @OneToMany(mappedBy = "company", cascade = CascadeType.REMOVE, fetch = FetchType.LAZY)
    private List<User> users;

Я удалил другие нерелевантные поля из классы. Я использую данные весенней загрузки jpa. Мой вопрос заключается в том, как удалить поле companyId и использовать идентификатор компании внутри поля company для функций CRUD с БД.

1 Ответ

3 голосов
/ 09 июля 2020

Просто удалите companyId и сделайте Company доступной для записи

@Entity

    @Table(name = "Users")
    @Getter @Setter @ToString
    public class User {
    
    @Id
    @GeneratedValue
    private long id;
    
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "company_id")
    private Company company;
...