@Scheduled
запланировать периодический запуск приложения (вообще, надо будет подумать над этим, может действительно стоит так и сделать). public class InfoFrame {
public static void customMethod() {
System.out.println("Hello world");
}
}
class ButtonEventListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
InfoFrame.customMethod();
}
}
Но если у тебя вдруг есть желание на бутылочку пива заработать)
Я установил этот плагин, можете пожалуйста написать как им пользоваться?
И еще если я верну старый поиск, то тут проблемка... он поломанный
Или в сервисы можно инжектить только другие сервисы?
Еще вопрос, а вообще как закрепить знания на все эти темы по коллекциям, может быть есть некоторые источники?
Получается, в каждой записи мне нужно хранить id создателя.
List<User> users = userRepository.findAll();
Converter<FROM, TO>
самого спринга Но ведь не будет ошибкой такой вариант:
Могли бы привести пример кода? Спасибо.
@Component
@Primary
public class GeneralManager implements Manager {
@Autowired
@Qualifier("fooFormatter")
private Formatter formatter;
private String category;
@ManyToMany(mappedBy = "category")
@ManyToMany(mappedBy = "categoryList")
private List<Category> categoryList;
private String description;
@Column(length=1000)
Иначе по дефолту кол-во символов равно 255 и в случае, если описание больше, чем 255 символов, то получите исключение при попытке сохранить запись.public Category get(Long id) {
if (repository.findById(id).isPresent()){
return repository.findById(id).get();
}
log.error("Категория не найдено");
return null;
}
Optional<Category>
private int price;
@ManyToMany(mappedBy = "categoryList")
private List<Product> productList;
@ManyToMany(fetch = FetchType.LAZY, cascade = {
CascadeType.PERSIST,
CascadeType.MERGE
})
@JoinTable(name = "product_categories",
joinColumns = @JoinColumn(name = "product_id"),
inverseJoinColumns = @JoinColumn(name = "category_id"))
private List<Category> categoryList;
<td th:text="${product.category}">Категория</td>
private String category;
вместо списка категорий. См. пункт 2 (это поле вообще не нужно). Вам нужно просто получить список категорий назначенных для данного товара, а затем при помощи th:each
вывести названия этих категорий.<td>
<span th:each="cat : ${product.categoryList}">
<span th:text="${cat.name}">Категория</span>
</span>
</td>
name=11&description=22&category=&price=300
<input type="text" th:field="*{category}"/>
Зачем вам это поле, если есть select?public List<Category> search(String keyword);
@Query("SELECT p FROM Product p WHERE CONCAT(p.name, ' ', p.description, ' ', p.price) LIKE %?1%")
List<Product> search(String keyword);
@RequestMapping
можно использовать более специализированные. Например, GetMapping PostMapping PutMapping и т.д.th:value="${product.category}"
<!-- Проблема! значение из option не происвается в product-->
<select th:field="*{categoryList}" class="form-select form-select-sm" aria-label="form-select-sm example" required>
<option selected value="">Выберите категорию</option>
<option th:each="category : ${categories}" th:value="${category.id}" th:text="${category.name}" value=""></option>
</select>
$(".wpcf7").on('wpcf7:mailsent', function(event){
alert();
//alert();
https://www.cloudsavvyit.com/9033/how-to-use-cron-...