Jon*_*nes 4 hibernate criteria
我想通过限制在 Hibernate 中的条件添加订单。我有两个表 Event 和 MainEvent 与一对多的关系(一个 MainEvent 有很多事件)。
final Criteria criteria = getCurrentSession().createCriteria(
Event.class);
criteria.createAlias("mainEvent.date", "deadline");
criteria.addOrder(Order.asc("deadline"));
return criteria.list();
Run Code Online (Sandbox Code Playgroud)
当我尝试运行它时,它给了我以下错误:
org.hibernate.QueryException:不是关联:日期。
主事件实体:
@Entity
@Table(name = "MAIN_EVENT")
public class MainEventEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "MAIN_EVENT_ID")
private int id;
@Column(name = "MAIN_EVENT_DATE")
private Date date;
@OneToMany(mappedBy = "mainEvent", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
private List<EventEntity> events = new ArrayList<EventEntity>();
}
Run Code Online (Sandbox Code Playgroud)
事件实体:
@Entity
@Table(name = "EVENT")
public class EventEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "EVENT_ID")
private int id;
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "MAIN_EVENT_ID", nullable = false)
private MainEventEntity mainEvent;
}
Run Code Online (Sandbox Code Playgroud)
根据Criteria.createAlias的 API ,您只能为关联创建别名,而不能为关联的字段创建别名。
createAlias
Criteria createAlias(String associationPath,
String alias)
throws HibernateException
Join an association, assigning an alias to the joined association.
Parameters:
associationPath - A dot-seperated property path
alias - The alias to assign to the joined association (for later reference).
Returns:
this (for method chaining)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14474 次 |
| 最近记录: |