KS
обычно используется специализированные решения для полнотекстового поиска, solr , elastic search, и пр
Size: a a a
KS
М
М
М
М
М
М
М
М
М
М
KS
@Entity
class ShopAvatar(
@OneToOne @MapsId
val image: Image = Image(),
@Id @GeneratedValue(generator = "SharedPrimaryKeyGenerator")
@GenericGenerator(name = "SharedPrimaryKeyGenerator", strategy = "foreign", parameters = [Parameter(name = "property", value = "image")])
@Column(columnDefinition = "BINARY(16)")
val uuid: UUID = defaultUuid(),
@OneToOne @JsonIgnore
var shop: Shop? = null
)
epositoryвот метод в сервисе, который линкует:
interface ShopAvatarRepository: JpaRepository<ShopAvatar, UUID> {
fun deleteAllByShop(shop: Shop)
}
И
nsactionalли до выполнения этого метода в таблице уже был залинкованный аватар к магазину, он не удалится..
override fun linkAvatarToShop(link: String, shop: Shop): ShopAvatar {
val image = findImageEntity(link)
shop.avatar?.let {
imageRepository.delete(it.image)
}
shopAvatarRepository.deleteAllByShop(shop)
val linkedAvatar = ShopAvatar(image = image, shop = shop)
return shopAvatarRepository.save(linkedAvatar)
}
Ес
KS
shopAvatarRepository.findAllByShop().forEach { shopAvatarRepository.delete(it) }
KS
KS
KS
KS
shop.avatar = null
shopAvatarRepository.deleteAllByShop(shop)
Ar
A
A