Как заблокировать стол ... делать вещи ... разблокировать стол с пружинными ботинками?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как заблокировать стол ... делать вещи ... разблокировать стол с пружинными ботинками?

Сообщение Anonymous »

Идея в основном состоит в том, чтобы расширить некоторые репозитории с пользовательской функциональностью. Итак, я получил эту настройку, которая работает!

Код: Выделить всё

@MappedSuperclass
abstract class MyBaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Int = 0

var eid: Int = 0

}

interface MyRepository {

@Transactional
fun saveInsert(entity: T): Optional
}

open class MyRepositoryImpl : MyRepository {

@Autowired
private lateinit var entityManager: EntityManager

@Transactional
override fun saveInsert(entity: T): Optional {

// lock table
entityManager.createNativeQuery("LOCK TABLE myTable WRITE").executeUpdate()

// get current max EID
val result = entityManager.createNativeQuery("SELECT MAX(eid) FROM myTable LIMIT 1").singleResult as? Int ?: 0

// set entities EID with incremented result
entity.eid = result + 1

// test if the table is locked. sending manually 2-3 POST requests to REST
Thread.sleep(5000)

// save
entityManager.persist(entity)

// unlock
entityManager.createNativeQuery("UNLOCK TABLES").executeUpdate()

return Optional.of(entity)
}
}
Как бы я сделал это более похожим на пружину? Я попробовал пару дополнительных параметров и @lock . Я прошел через документы и некоторые учебники, но абстрактный технический английский часто нелегко понять. В конце концов, я не получил рабочего решения, поэтому я вручную добавил зажим вручную, что работает нормально. Все еще предпочел бы более похожий на пружинный способ сделать это.

Подробнее здесь: https://stackoverflow.com/questions/565 ... pring-boot
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»