1 package eu
.etaxonomy
.cdm
.persistence
.query
;
5 import org
.hibernate
.Criteria
;
6 import org
.hibernate
.HibernateException
;
7 import org
.hibernate
.criterion
.CriteriaQuery
;
8 import org
.hibernate
.criterion
.Order
;
9 import org
.hibernate
.envers
.query
.AuditQuery
;
10 import org
.hibernate
.internal
.util
.StringHelper
;
12 import eu
.etaxonomy
.cdm
.persistence
.dao
.common
.OperationNotSupportedInPriorViewException
;
15 public class RandomOrder
extends OrderHint
{
16 private final static String PROPERTY_NAME
= "uselessAnyways";
18 public RandomOrder() {
19 super(RandomOrder
.PROPERTY_NAME
,SortOrder
.ASCENDING
);
23 public void add(Criteria criteria
, Map
<String
, Criteria
> criteriaMap
) {
24 criteria
.addOrder(new RandomHibernateOrder());
27 public class RandomHibernateOrder
extends Order
{
28 private static final long serialVersionUID
= 8231534219451938847L;
31 protected RandomHibernateOrder() {
32 super(RandomOrder
.PROPERTY_NAME
, true);
37 public String
toSqlString(Criteria criteria
, CriteriaQuery criteriaQuery
)
38 throws HibernateException
{
39 StringBuilder fragment
= new StringBuilder();
40 fragment
.append(" rand()");
41 return StringHelper
.replace(fragment
.toString(), "{alias}",
42 criteriaQuery
.getSQLAlias(criteria
));
47 public void add(AuditQuery query
) {
48 throw new OperationNotSupportedInPriorViewException("You cannot sort in a random order in the history view");