У нас есть значения в базе данных как английский ("en") и испанский ("sp") для того же "emp_id". Но выходные данные дают все значения для данного « emp_id » (как на английском, так и на испанском) , даже если мы установили язык как «en» (английский) в критериях хибената. Но мне нужны значения для значения, установленные в критериях. Т.е. если я установлю критерии как "en", тогда он должен дать значение в "en" (на английском) для "emp_id". См. Домен и код критерия :
Класс домена Emp: -
@OneToMany(fetch = FetchType.LAZY, targetEntity = Multilingual.class)
@JoinColumn(name = "emp_id")
private Set<Multilingual> multilinguals = new HashSet<>();
класс обслуживания: -
List<Map<String, Object>> filters = requestParam.getFilter();
ServiceResponse<List<Team>> sr = new ServiceResponse<>();
if (filters == null || filters.isEmpty()) {
filters = new ArrayList<>();
}
Map<String, Object> criteria = new HashMap<>();
criteria.put("expression", "alias");
criteria.put("property", "multilinguals");
criteria.put("value", "multilinguals");
filters.add(criteria);
criteria = new HashMap<>();
criteria.put("expression", "eq");
criteria.put("property", "lan");
criteria.put("value", "en");
filters.add(criteria);
requestParam.setFilter(filters);
sr.setResponse(teamDao.getByCriteria(filters));
return sr;
Класс многоязычного домена: -
@Entity
@Table(name="multilingual")
public class Multilingual implements Serializable {
@Id
@Column(name = "id", unique = true, nullable = false)
@GeneratedValue
private Integer id;
@Column(name = "lan", nullable = true, length = 50)
private String lan;
@Column(name = "name", nullable = true, length = 255)
private String name;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "emp_id", insertable=true, updatable=true)
private Emp emp;