JPA @JoinColumn:提取时排除某些属性

时间:2019-05-08 10:35:05

标签: hibernate jpa joincolumn

我遇到一种情况,我想在获取引用对象的属性时排除某些列。

以下是我的实体。交易实体引用帐户,而帐户引用客户实体。

@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,因为更改需要在很多地方进行更改,但是不幸的是,目前我无法这样做。

在帐户实体中定义客户属性的地方可以添加任何注释,以解决此问题吗?

0 个答案:

没有答案