Java 使用spring JPA规范搜索联接表 @实体 @表(name=“user\u group”) @资料 公共课组{ @ManyToMany(fetch=FetchType.LAZY) @JoinTable(name=“group\u hotel\u Catalog”, joinColumns={@JoinColumn(name=“group_id”)}, inverseJoinColumns={@JoinColumn(name=“hotel_id”)}) @JsonSerialize(contentUsing=GroupHotelSerializer.class) 私有集hotelcatalog=新HashSet(); } @交易的 公共界面酒店扩展了JpaRepository, JpaSpecificationExecutor{ @凌驾 清单findAll(规范规范); }
我想知道是否可以重用JPA规范来搜索给定的数据集,而不是从存储库中搜索整个数据库表。例如,我有一个数据库中存在的酒店列表,我只想对这个酒店子集进行规范搜索。我该怎么办Java 使用spring JPA规范搜索联接表 @实体 @表(name=“user\u group”) @资料 公共课组{ @ManyToMany(fetch=FetchType.LAZY) @JoinTable(name=“group\u hotel\u Catalog”, joinColumns={@JoinColumn(name=“group_id”)}, inverseJoinColumns={@JoinColumn(name=“hotel_id”)}) @JsonSerialize(contentUsing=GroupHotelSerializer.class) 私有集hotelcatalog=新HashSet(); } @交易的 公共界面酒店扩展了JpaRepository, JpaSpecificationExecutor{ @凌驾 清单findAll(规范规范); },java,spring-data-jpa,Java,Spring Data Jpa,我想知道是否可以重用JPA规范来搜索给定的数据集,而不是从存储库中搜索整个数据库表。例如,我有一个数据库中存在的酒店列表,我只想对这个酒店子集进行规范搜索。我该怎么办 谢谢。您看过文档了吗?喜欢这个教程吗?我读过了,但我希望搜索只适用于给定的集合,而不是整个数据库。为什么不向您的酒店存储库添加一个简单的方法,然后在数据库表级别进行筛选?重用JPA规范有什么意义?@jbx如何将所有hotel都放入联接表?我不知道您的代码或模式是什么样子。你甚至没有把酒店实体放进去。 @Entity @Table(
谢谢。您看过文档了吗?喜欢这个教程吗?我读过了,但我希望搜索只适用于给定的集合,而不是整个数据库。为什么不向您的酒店存储库添加一个简单的方法,然后在数据库表级别进行筛选?重用JPA规范有什么意义?@jbx如何将所有hotel都放入联接表?我不知道您的代码或模式是什么样子。你甚至没有把
酒店
实体放进去。
@Entity
@Table(name = "user_group")
@Data
public class Group{
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "group_hotel_catalogue",
joinColumns = {@JoinColumn(name = "group_id")},
inverseJoinColumns = {@JoinColumn(name = "hotel_id")})
@JsonSerialize(contentUsing = GroupHotelSerializer.class)
private Set<Hotel> hotelCatalogue = new HashSet<>();
}
@Transactional
public interface HotelDao extends JpaRepository<Hotel, Integer>,
JpaSpecificationExecutor<Hotel> {
@Override
List<Hotel> findAll(Specification spec);
}