0
私は@Document
のIDを自動的にインクリメントするためにRepository
を作成しましたが、今は明示的に新しいIDを設定する@Id
セッターメソッドを呼び出す必要があります。 私はこのように私のコードを実装する場合、私はそれを保存する前に、それぞれ、すべてのドキュメントに対してsequenceRepository.getNextId(...)
を呼び出す必要がありJPA @PrePersist
で@PrePersist SpringListの代わりにEventListener
@Repository
interface UserRepository : MongoRepository<User, Long>, UserRepositoryCustom
interface UserRepositoryCustom {
fun save(user: User): User
}
class UserRepositoryImpl(private val mongoOperations: MongoOperations, private val sequenceRepository: SequenceRepository) : UserRepositoryCustom {
override fun save(user: User): User {
// need to call this line for every @Document
user.id = sequenceRepository.getNextId(User.SEQUENCE_KEY)
mongoOperations.insert(user)
return user
}
}
のように、この使用してリスナーを行うことができます方法はあります。
EventListeners
を@PrePersist
とすることができます。これを実現するには、spring-data-mongo
代替機能または類似機能がありますか?
AbstractMongoEventListener
クラスを拡張しPrePersist等価を達成するために以下のメソッドをオーバーライドすることができ/ why-auto-increment-is-a-terrible-idea /)は、自動インクリメントをまったく使用していますか? – madhead