JPA @JoinColumn: исключать определенные атрибуты при получении - PullRequest
0 голосов
/ 08 мая 2019

У меня возникла ситуация, в которой я хочу исключить некоторые столбцы при получении атрибутов ссылочного объекта.

Ниже приведены мои объекты.У сущности транзакции есть ссылка на учетную запись, а у учетной записи - ссылка на клиентскую сущность.

@Entity
public class Transaction {
    @Id
    @Column(name = "id")
    private long id;

    @Column(name = "transaction_amt", nullable = false)
    private long transactionAmt;

    @ManyToOne
    @JoinColumn(name = "account_id", referencedColumnName = "id", nullable = false)
    private Account account;

    //getters and setters
}

@Entity
public class Account {

   @Id
   @Column(name = "id")
   private long id;

   @Basic
   @Column(name = "name")
   private String name;

   @ManyToOne
   @JoinColumn(name = "client_id", referencedColumnName = "id", nullable = false)
   @JsonIgnore
   private Client client;


    //getters and setters

}

@Entity
public class Client {

   @Id
   @Column(name = "id")
   private long id;

   @Basic
   @Column(name = "name")
   private String clientName;

   @Basic
   @JsonIgnore
   @Column(name = "logo", columnDefinition="blob")
   private byte[] logo;

   @Lob
   @Basic
   @Column(name="tnc", columnDefinition = "mediumblob")
   private byte[] terms_conditions;

   //getters and setters
}

Теперь, когда я выбираю транзакции из базы данных, внутри объекта учетной записи транзакции выбирается, а внутри учетной записи выбирается объект клиента.Есть ли способ исключить выборку определенных атрибутов объекта клиента при получении транзакции?Я не хочу извлекать атрибуты логотипа и term_conditions клиента.

Я не могу изменить тип извлечения на LAZY, так как это изменение потребует изменений во многих местах, чего, к сожалению, я пока не могу сделать.

Есть ли какая-нибудь аннотация, которую я могу добавить, где атрибут клиента определен в сущности учетной записи, который может решить эту проблему?

...