问题描述
在休眠状态下,我有一个JPA实体,它的Id
类型的UUID
字段,date
类型的Instant
字段,以及其他一些字段,包括用One与许多关系。
为了说明
@Entity
@Table(name = "sport_car")
public class SportCar implements Serializable {
@Id
UUID id;
Instant date;
@OnetoMany(fetch = FetchType.LAZY,cascade = CascadeType.ALL)
List<Sponsor> sponsors;
...
}
为了提高性能,我决定将sport_car
表划分为date
,每天划分一个,因为每天都会添加很多SportCar
。
为了改善SportCarJpaRepository.update()
,我正在考虑将复合键/ id设置为SportCar
,包括date
,但是问题出在sponsors
属性上。
由于大多数更新都是在最近的一天中完成的,因此性能改善应该很明显。
要进行一对多引用,我需要在映射类Sponsor
的表中添加一个新列,因为JPA假定您需要sport_card
表中的所有id列来进行唯一引用,因为id
字段是唯一的,所以在真正不需要的时候。
为了说明
@Entity
@IdClass(SportCarId.class)
public class SportCar implements Serializable {
@Id
UUID id;
@Id
Instant date;
@OnetoMany(fetch = FetchType.LAZY,cascade = CascadeType.ALL)
@JoinColumn(name = "id",referencedColumnName = "sport_car_id")
List<Sponsor> sponsors;
...
}
public class SportCarId implements Serializable {
UUID id;
Instant date;
}
这将不起作用,因为SportCar.date
上的@OnetoMany
关系中未引用SportCar.sponsors
字段。
我的问题是,Hibernate / JPA是否提供一种利用分区来优化update()
的方法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)