0
У меня есть эти две сущности:Hibernate Criteria.createAlias не объединение таблиц
@Entity
@Table(name = "BA_USER", schema = "MYSCHEMA")
@XmlType(namespace = BusinessOperations.NAMESPACE)
@JsonIgnoreProperties(ignoreUnknown = true)
public class UserWeb implements Serializable, UserDetails, SecurityUserInfo, Auditable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "userGenerator")
@SequenceGenerator(name="userGenerator", sequenceName="SEQ_USER")
@Column(name = "USERID", unique = true, nullable = false, precision = 22, scale = 0)
private long userid;
@ManyToOne(targetEntity = Country.class, fetch = FetchType.LAZY)
@JoinColumn(name = "COUNTRYID")
private Country country;
@ManyToOne(targetEntity = Menu.class, fetch = FetchType.LAZY)
@JoinColumn(name = "MENUID")
private Menu menu;
//Getters and Setters
}
и
@Entity
@Table(name = "BA_PREMIUMUSER", schema = "MYSCHEMA")
public class PremiumUser implements java.io.Serializable {
@Id
@OneToOne(targetEntity = UserWeb.class, fetch = FetchType.LAZY)
@JoinColumn(name = "USERID")
private UserWeb userWeb;
@ManyToOne(targetEntity = Customer.class, fetch = FetchType.LAZY)
private Customer customer;
//Getters and Setters
}
Тогда в моей DAO у меня есть следующий метод:
public List<PremiumUser> findAllUsers(Long userid, Long customerId, Menu menu) {
Criteria criteria = getSession().createCriteria(PremiumUser.class);
criteria.add(Restrictions.eq("clienteProsegur", customerId));
criteria.createAlias("userWeb", "userweb", CriteriaSpecification.INNER_JOIN);
criteria.add(Restrictions.eq("userweb.menu", menu));
return criteria.list();
}
Hibernate создает следующий запрос:
select this_.USERID as USERID52_0_, this_.CUSTOMER as CUSTOMER2_52_0_
from MYSCHEMA.BA_PREMIUMUSER this_
where userweb1_.MENUID=2 and this_.CUSTOMERID=3
Я ожидал, что метод createAlias создать присоединиться заявление в запросе, как this_
select this_.USERID as USERID52_0_, this_.CUSTOMER as CUSTOMER2_52_0_
from MYSCHEMA.BA_PREMIUMUSER this_
inner join MYSCHEMA.BA_USER userweb1_ on this_.USERID = userweb1.USERID
where userweb1_.MENUID=2 and this_.CUSTOMERID=3
Я использую эту версию спящего режима: Hibernate-core-3.6.0.Final
Я думаю, что я что-то здесь отсутствует.
Пробовал это и получил тот же запрос, как и раньше – mornaner
Что Hibernate версии вы используете? – Naros
Hibernate-core-3.6.0.Final, я добавлю его к вопросу – mornaner