У меня есть списки product
и categories
и нужно знать, если каждый пользователь просмотрел их, также общее количество products
для каждого category
, которые были просмотрены каждым пользователем.Как отслеживать элементы, которые каждый пользователь смотрел
Короче говоря, мне нужно держать списки
- Продукты, которые каждый пользователь просмотрены (После того, как пользователь просматривает продукт Профиль пользователя он будет добавлен в этот список)
- Разделы, которые просматривали каждый пользователь (Once пользователь просмотрел профиль категории, он будет добавлен в этот список)
- Количество товаров в каждой категории, которые просматривали каждого пользователя?
Я добавил две переменные-члены в класс Client
следующим образом. Я не уверен, что это правильно или нет, во-вторых, я не знаю, как сохранить счетчик для всех просмотренных продуктов каждой категории для каждого пользователя. (Я знаю, что могу получить его с помощью функции (COUNT) базы данных, но мне интересно, есть ли другой эффективный способ, а не отправлять этот запрос в базу данных).
Клиент:
@Entity
public class Client {
@Id
@GeneratedValue
private long id;
@OneToOne
private List<Product> viewedProducts = new ArrayList<Product>(); //keep list of viewed products
@OneToOne
private List<Category> viewedCategories = new ArrayList<Category>(); //keep list of viewed categories
....
}
Продукт
@Entity
public class Product {
@Id
@GeneratedValue
private long id;
@ManyToOne(cascade = CascadeType.ALL)
private Category category;
....
}
Категория
@Entity
public class Category {
@Id
@GeneratedValue
private long id;
....
}
Таким образом, другой способ означает, что вам нужно добавить логику для этого при каждом нажатии категории и продукта. Подобно u, вы можете создать карту, в которой имя категории будет ключом, а в списке продуктов будет значение – Deepak
. не получить вас, как определить члены переменной тогда? – AlexCartio1
В настоящее время я думаю, что u сохраняет значения экземпляров клиента в db для каждого клика, поэтому, если это не требуется для будущего, тогда вы можете сделать временный список и можете использовать – Deepak