我遇到一种情况,我想在获取引用对象的属性时排除某些列。
以下是我的实体。交易实体引用帐户,而帐户引用客户实体。
@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
}
现在,当我从数据库中获取交易时,将获取内部交易帐户对象,而在内部帐户中将获取客户端对象。 在获取事务时,是否有一种方法可以排除对客户端实体特定属性的获取? 我不想获取客户的徽标和terms_conditions属性。
我无法将提取类型更改为LAZY,因为更改需要在很多地方进行更改,但是不幸的是,目前我无法这样做。
在帐户实体中定义客户属性的地方可以添加任何注释,以解决此问题吗?