Size: a a a

2020 September 24

かたかわ in learn.java
В этом и смысл декларативного программирования
источник

かたかわ in learn.java
Если так сильно хочешь увидеть кишки, то поставь в DAO new RuntimeException().printStackTrace(), увидишь стактрейс, где будет проксибин
источник

TR

Ti Reks in learn.java
а что с энтити менеджером тогда
источник

かたかわ in learn.java
О нём позаботится спринг
источник

TR

Ti Reks in learn.java
мы вызываем транзакцию на методе сервиса , там вызываем метод дао , там контекст персистентности
источник

TR

Ti Reks in learn.java
он тоже оборачивается в прокси или что?
источник

TR

Ti Reks in learn.java
прокси делегирует моему настоящему сервису проводить транзакцию или нет
источник

かたかわ in learn.java
Ты new RuntimeException().printStackTrace() прописал?
источник

TR

Ti Reks in learn.java
мой сервис зовет дао а там энтити менеджер
источник

かたかわ in learn.java
Зачем миллион раз спрашивать, если один раз можно увидеть?
источник

TR

Ti Reks in learn.java
я пропишу щас но не совсем sure что это поможет
источник

かたかわ in learn.java
Пропиши, посмотри
источник

かたかわ in learn.java
Ti Reks
мы вызываем транзакцию на методе сервиса , там вызываем метод дао , там контекст персистентности
Мы не вызываем транзакцию на методе сервиса, мы метод сервиса обозначаем как @Transactional, в свою очередь мы сообщаем прокси dao, что он должен позаботиться о транзакции
источник

かたかわ in learn.java
Что значит оборачивать в прокси контекст персистентности? Ты путаешь термины
источник

かたかわ in learn.java
Посмотри видео, хотя бы, если не хочешь доку читать
источник

am

andrew maged in learn.java
Hi, how to upload video with preview?
источник

V

Vlad in learn.java
Ti Reks
Ti Reks, [24.09.20 01:00]
Ребята , очень запутался , пускаю топик сюда. Насколько обширно сможете обьяснить на своем примере , настолько я буду рад. Каким образом работает аоп в транзакциях , как понять что создается аспект "до" и "после" дело в том что я читаю на данный момент в моем представление в декларативном управление транзакциями происходят вот такие этапы :
1 - Помечаем аннотацией @Transactional
2 - Создается ( прокси класс ) который отделяется от бизнес логики класса ( сервиса ) и там происходят вот такие под-этапы
2.1 начинается транзакция
2.2 вызывается бизнес метод ( super.service в случае наследование ) сервиса.
2.3 коммится транзакция
2.4 закрывается прокси и все делегируется в сервис
где тут аоп , где тут менеджер транзакций , и господи как это все понять глубоко , перерыл все.
Аоп тут в том, что такая вещь как работа с транзакциями сделана в виде cross-cutting логики, не ты в своем бизнес коде используешь транзакцию(опен, коммит и тд), а она вокруг твоего бизнеса метода. Менеджер транзакци и все остальное вызывается в той самой логике, которой оборачивают твой класс
источник

AA

Albert Abdullin in learn.java
Всем привет! Читаю Java Concurency на практике и разбираю пример взаимной блокировки с голоданием. Кто-нибудь сможет мне объяснить, почему в этом примере появляется эта самая пресловутая блокировка?
public class ThreadDeadlock {
ExecutorService exec = Executors.newSingleThreadExecutor();
public class RenderPageTask implements Callable<String> {
 public String call() throws Exception {
  Future<String> header, footer;
  header = exec.submit(new LoadFileTask("header.html"));
  footer = exec.submit(new LoadFileTask("footer.html"));
  String page = renderBody();
  // Запирается взаимной блокировкой – задача, ожидающая
  // результат подзадачи
  return header.get() + page + footer.get();
 }
}
}
источник

AA

Albert Abdullin in learn.java
Я думал, что при вызове header.get() заблокируется поток откуда идет вызов этого метода до получения результата, затем заблокируется снова для получения второго результата. Но, видимо, я чего-то не догоняю
источник

I

Ilya in learn.java
Всем провет, кто-нибудь пробовал разрабатывать нейросеть и сложно ли?
источник