İki varlık vardır:Yay Verilerinde "toplu işle göre düzen" nasıl yapılır?
ResourceFile:
@Entity
@Table(name = "resource_file")
public class ResourceFile extends IdEntity<Integer> {
@Id
@SequenceGenerator(name = "resource_file_id_generator", sequenceName = "resource_file_id", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "resource_file_id_generator")
@Column(name = "id", unique = true, nullable = false)
@Nonnegative
private Integer id;
...
}
FavoriteResourceFile:
@Entity
@Table(name = "favorite_resource_file")
@Cacheable
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class FavoriteResourceFile extends IdEntity<FavoriteResourceFileId> {
@EmbeddedId
private FavoriteResourceFileId id;
@MapsId("resourceFileId")
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "resource_file_id", nullable = false)
private ResourceFile resourceFile;
...
}
Ben de "aşağıdaki sorguyu oluşturan tüm kaynak dosyaları seçmek ve favori kaynak dosyanın sayımı göre sıralamak istiyorum ".
SQL benzediğini:
select rf.id, count(frf.resource_file_id) from resource_file rf
left join favorite_resource_file frf on frf.resource_file_id = rf.id
group by rf.id
order by count(rf.id) desc;
Ama sonunda ResourceFile varlığa eşleme yapmak için Bahar Veriler ve nasıl bunu nasıl anlayamıyorum.
Bazı sınırlamaları:
-
farklı modüllerde bulunan çünkü ResourceFile içinde FavoriteResourceFile için ilişkisi yapamaz
Ben yerli SQL veya JPA sorgu kullanmak istemiyorum
- (dizeleri olarak).
- Meta modelleri, Teknik Belirtimi veya QueryDSL'yi kullanmak tercih edilir çünkü bunlar zaten projede kullanılır.
Birisi bana yardımcı olabilir mi?
Son nokta Repo:
public interface ResourceFileRepository extends
PagingAndSortingRepository<ResourceFile, Integer>,
ResourceFileRepositoryCustom {
}
Özel Repo:
public interface ResourceFileRepositoryCustom {
List<ResourceFile> getResourceFilesOrderByFavourites();
}
Özel