Но ведь не будет ошибкой такой вариант:
Могли бы привести пример кода? Спасибо.
@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();
List<Category> category = categoryService.getAll();
и т.д. ctrl + z
и вернуть все обратно.я добавил код который вы скинули и после поломки удалил скрипт который вы скинули
alert();
и удалить или же закомментировать ее (добавить 2 слеша // ) в начале этой строки.function(event) {
alert();
$(".wpcf7").on('wpcf7:mailsent', function(event) {
......
alert();
И в этом js файле я нашел строчку с alert,влияет ли она на что то?
что мне делать с этим кодом? мне его удалить?
alert();
в файле common.js (2-я строка).Из архетипа попробовал создать, также при запуске косяк аналогичный. Правда, теперь фазу "site" проходит, но валится на фазе "deploy"
deploy - done in the build environment, copies the final package to the remote repository for sharing with other developers and projects.
mvn clean package
и в результате получить готовый jar (ищите в директории см. директорию target после ввода вышеуказанной команды)
Да, нужен и UserRequestDTO & UserResponseDTO.
Вообще, лучше не отдавать на клиент всю структуру вашей БД. Для этих целей используется доп. прослойка Data To Object.
Например, вам нужно вернуть список пользователей, но некоторые данные о пользователях хранимые в БД не нужны. В этом случае используется паттерн DTO.
Для удобства работы с DTO (для маппинга) можно использовать ModelMapper || MapStruct. Ну или же интерфейс
Converter<FROM, TO>
самого спринга