我正在获取50个字段的数据。如何在JPA中映射到两个表格,在其中我只需要三个字段和其他字段,我只需要传递到下游?
这是针对运行H2 DB项目的新的Spring Data JPA。过去,我尝试在一个实体表中映射所有50个字段。但是我只需要从这50个字段中的3个基本字段来完成最后5000个记录的过程。
@Entity
class SingleCustomer{
//ID field
// 3 fields only these fields I am using to process my data from db
//47 fields just to pass to another service without any process
}
提高我的应用程序的性能,我应该采用哪种方法?是否还有其他方法可以改善应用程序性能,例如分为两个实体,并在需要发送另一个服务时一对一加入。
正如您所说的那样,您可以将所有字段分为两个实体,并加入一对一的关系。但是您应该注意,默认情况下,与一对一关系的字段急切地加载,您应该将其标记为懒惰以提高性能。
使用@lebecca指出的单独的实体与@OneToOne
关联不需要的字段是一种方法,正如@lebecca所指出的一种方法。
但是,如果您宁愿将所有属性保留在一个实体中,则可以打开Hibernate字节码增强,这可以支持@Basic(fetch = LAZY)
。如果需要,您还应该能够将使用@SecondaryTable
的方法组合起来,以存储通常不需要的属性。
有关更多信息,请参见此处,包括有关如何通过启用增强功能来微调懒惰加载行为的信息。