У меня возникла ситуация, в которой я хочу исключить некоторые столбцы при получении атрибутов ссылочного объекта.
Ниже приведены мои объекты.У сущности транзакции есть ссылка на учетную запись, а у учетной записи - ссылка на клиентскую сущность.
@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, так как это изменение потребует изменений во многих местах, чего, к сожалению, я пока не могу сделать.
Есть ли какая-нибудь аннотация, которую я могу добавить, где атрибут клиента определен в сущности учетной записи, который может решить эту проблему?