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
{
17 private static final long serialVersionUID
= 9013839425292632385L;
18 private final static String PROPERTY_NAME
= "uselessAnyways";
20 public RandomOrder() {
21 super(RandomOrder
.PROPERTY_NAME
,SortOrder
.ASCENDING
);
25 public void add(Criteria criteria
, Map
<String
, Criteria
> criteriaMap
) {
26 criteria
.addOrder(new RandomHibernateOrder());
29 public class RandomHibernateOrder
extends Order
{
30 private static final long serialVersionUID
= 8231534219451938847L;
33 protected RandomHibernateOrder() {
34 super(RandomOrder
.PROPERTY_NAME
, true);
39 public String
toSqlString(Criteria criteria
, CriteriaQuery criteriaQuery
)
40 throws HibernateException
{
41 StringBuilder fragment
= new StringBuilder();
42 fragment
.append(" rand()");
43 return StringHelper
.replace(fragment
.toString(), "{alias}",
44 criteriaQuery
.getSQLAlias(criteria
));
49 public void add(AuditQuery query
) {
50 throw new OperationNotSupportedInPriorViewException("You cannot sort in a random order in the history view");