How to prevent sorting on a given column?
My repository allows for sorting on any column when retrieving a list of users:
public interface UserRepository extends JpaRepository<User, Long>, UserRepositoryCustom {
@Query("SELECT u FROM User u")
public Page<User> all(Pageable page);
}
The trouble is that a user has some properties that cannot offer sorting, like his confirmedEmail
property.
@Entity
@Table(name = "user_account")
@SequenceGenerator(name = "id_generator", sequenceName = "user_account_id_seq", allocationSize = 10)
public class User extends AbstractEntity {
@Column(nullable = false)
private String firstname;
@Column(nullable = false)
private String lastname;
@Column(nullable = false, unique = true)
private EmailAddress email;
@Column(nullable = false)
private boolean confirmedEmail;
}
How can I prevent the Pageable
argument from sorting on this boolean confirmedEmail
property ?
I stumbled upon this issue when I sorted by clicking on the Confirmed
header in my Angular
data table.
This front-end event triggered the following request:
SELECT u FROM com.thalasoft.user.data.jpa.domain.User u order by u.confirmed asc
I know I can make this data table column not sortable, and I did. But I'd like to also have a server side safety in place.
As a side note, I wonder if I could also provide a default sorting if none is specified in the client request.
UPDATE: I created the utility method:
public static final Sort stripColumnsFromSorting(Sort sort, Set<String> nonSortableColumns) {
return Sort.by(sort.stream().filter(order -> {
return !nonSortableColumns.contains(order.getProperty());
}).collect(Collectors.toList()));
}
which I call like:
Set<String> nonSortableColumns = new HashSet<String>(Arrays.asList("id", "confirmedEmail"));
public ResponseEntity<PagedResources<UserResource>> all(@PageableDefault(sort = { "lastname", "firstname" }, direction = Sort.Direction.ASC) Pageable pageable, Sort sort,
PagedResourcesAssembler<User> pagedResourcesAssembler, UriComponentsBuilder builder) {
sort = CommonUtils.stripColumnsFromSorting(sort, nonSortableColumns);
userService.addSortToPageable(pageable, sort);
But it is still invoking the sorting on the non sortable column:
Invoking 'com.thalasoft.user.rest.controller.UserController.all' with arguments [Page request [number: 0, size 5, sort: confirmedEmail: DESC], confirmedEmail: DESC, org.springframework.data.web.MethodParameterAwarePagedResourcesAssembler@78817e7e, org.springframework.web.servlet.support.ServletUriComponentsBuilder@3e49647a]
spring-data-jpa spring-data
add a comment |
My repository allows for sorting on any column when retrieving a list of users:
public interface UserRepository extends JpaRepository<User, Long>, UserRepositoryCustom {
@Query("SELECT u FROM User u")
public Page<User> all(Pageable page);
}
The trouble is that a user has some properties that cannot offer sorting, like his confirmedEmail
property.
@Entity
@Table(name = "user_account")
@SequenceGenerator(name = "id_generator", sequenceName = "user_account_id_seq", allocationSize = 10)
public class User extends AbstractEntity {
@Column(nullable = false)
private String firstname;
@Column(nullable = false)
private String lastname;
@Column(nullable = false, unique = true)
private EmailAddress email;
@Column(nullable = false)
private boolean confirmedEmail;
}
How can I prevent the Pageable
argument from sorting on this boolean confirmedEmail
property ?
I stumbled upon this issue when I sorted by clicking on the Confirmed
header in my Angular
data table.
This front-end event triggered the following request:
SELECT u FROM com.thalasoft.user.data.jpa.domain.User u order by u.confirmed asc
I know I can make this data table column not sortable, and I did. But I'd like to also have a server side safety in place.
As a side note, I wonder if I could also provide a default sorting if none is specified in the client request.
UPDATE: I created the utility method:
public static final Sort stripColumnsFromSorting(Sort sort, Set<String> nonSortableColumns) {
return Sort.by(sort.stream().filter(order -> {
return !nonSortableColumns.contains(order.getProperty());
}).collect(Collectors.toList()));
}
which I call like:
Set<String> nonSortableColumns = new HashSet<String>(Arrays.asList("id", "confirmedEmail"));
public ResponseEntity<PagedResources<UserResource>> all(@PageableDefault(sort = { "lastname", "firstname" }, direction = Sort.Direction.ASC) Pageable pageable, Sort sort,
PagedResourcesAssembler<User> pagedResourcesAssembler, UriComponentsBuilder builder) {
sort = CommonUtils.stripColumnsFromSorting(sort, nonSortableColumns);
userService.addSortToPageable(pageable, sort);
But it is still invoking the sorting on the non sortable column:
Invoking 'com.thalasoft.user.rest.controller.UserController.all' with arguments [Page request [number: 0, size 5, sort: confirmedEmail: DESC], confirmedEmail: DESC, org.springframework.data.web.MethodParameterAwarePagedResourcesAssembler@78817e7e, org.springframework.web.servlet.support.ServletUriComponentsBuilder@3e49647a]
spring-data-jpa spring-data
add a comment |
My repository allows for sorting on any column when retrieving a list of users:
public interface UserRepository extends JpaRepository<User, Long>, UserRepositoryCustom {
@Query("SELECT u FROM User u")
public Page<User> all(Pageable page);
}
The trouble is that a user has some properties that cannot offer sorting, like his confirmedEmail
property.
@Entity
@Table(name = "user_account")
@SequenceGenerator(name = "id_generator", sequenceName = "user_account_id_seq", allocationSize = 10)
public class User extends AbstractEntity {
@Column(nullable = false)
private String firstname;
@Column(nullable = false)
private String lastname;
@Column(nullable = false, unique = true)
private EmailAddress email;
@Column(nullable = false)
private boolean confirmedEmail;
}
How can I prevent the Pageable
argument from sorting on this boolean confirmedEmail
property ?
I stumbled upon this issue when I sorted by clicking on the Confirmed
header in my Angular
data table.
This front-end event triggered the following request:
SELECT u FROM com.thalasoft.user.data.jpa.domain.User u order by u.confirmed asc
I know I can make this data table column not sortable, and I did. But I'd like to also have a server side safety in place.
As a side note, I wonder if I could also provide a default sorting if none is specified in the client request.
UPDATE: I created the utility method:
public static final Sort stripColumnsFromSorting(Sort sort, Set<String> nonSortableColumns) {
return Sort.by(sort.stream().filter(order -> {
return !nonSortableColumns.contains(order.getProperty());
}).collect(Collectors.toList()));
}
which I call like:
Set<String> nonSortableColumns = new HashSet<String>(Arrays.asList("id", "confirmedEmail"));
public ResponseEntity<PagedResources<UserResource>> all(@PageableDefault(sort = { "lastname", "firstname" }, direction = Sort.Direction.ASC) Pageable pageable, Sort sort,
PagedResourcesAssembler<User> pagedResourcesAssembler, UriComponentsBuilder builder) {
sort = CommonUtils.stripColumnsFromSorting(sort, nonSortableColumns);
userService.addSortToPageable(pageable, sort);
But it is still invoking the sorting on the non sortable column:
Invoking 'com.thalasoft.user.rest.controller.UserController.all' with arguments [Page request [number: 0, size 5, sort: confirmedEmail: DESC], confirmedEmail: DESC, org.springframework.data.web.MethodParameterAwarePagedResourcesAssembler@78817e7e, org.springframework.web.servlet.support.ServletUriComponentsBuilder@3e49647a]
spring-data-jpa spring-data
My repository allows for sorting on any column when retrieving a list of users:
public interface UserRepository extends JpaRepository<User, Long>, UserRepositoryCustom {
@Query("SELECT u FROM User u")
public Page<User> all(Pageable page);
}
The trouble is that a user has some properties that cannot offer sorting, like his confirmedEmail
property.
@Entity
@Table(name = "user_account")
@SequenceGenerator(name = "id_generator", sequenceName = "user_account_id_seq", allocationSize = 10)
public class User extends AbstractEntity {
@Column(nullable = false)
private String firstname;
@Column(nullable = false)
private String lastname;
@Column(nullable = false, unique = true)
private EmailAddress email;
@Column(nullable = false)
private boolean confirmedEmail;
}
How can I prevent the Pageable
argument from sorting on this boolean confirmedEmail
property ?
I stumbled upon this issue when I sorted by clicking on the Confirmed
header in my Angular
data table.
This front-end event triggered the following request:
SELECT u FROM com.thalasoft.user.data.jpa.domain.User u order by u.confirmed asc
I know I can make this data table column not sortable, and I did. But I'd like to also have a server side safety in place.
As a side note, I wonder if I could also provide a default sorting if none is specified in the client request.
UPDATE: I created the utility method:
public static final Sort stripColumnsFromSorting(Sort sort, Set<String> nonSortableColumns) {
return Sort.by(sort.stream().filter(order -> {
return !nonSortableColumns.contains(order.getProperty());
}).collect(Collectors.toList()));
}
which I call like:
Set<String> nonSortableColumns = new HashSet<String>(Arrays.asList("id", "confirmedEmail"));
public ResponseEntity<PagedResources<UserResource>> all(@PageableDefault(sort = { "lastname", "firstname" }, direction = Sort.Direction.ASC) Pageable pageable, Sort sort,
PagedResourcesAssembler<User> pagedResourcesAssembler, UriComponentsBuilder builder) {
sort = CommonUtils.stripColumnsFromSorting(sort, nonSortableColumns);
userService.addSortToPageable(pageable, sort);
But it is still invoking the sorting on the non sortable column:
Invoking 'com.thalasoft.user.rest.controller.UserController.all' with arguments [Page request [number: 0, size 5, sort: confirmedEmail: DESC], confirmedEmail: DESC, org.springframework.data.web.MethodParameterAwarePagedResourcesAssembler@78817e7e, org.springframework.web.servlet.support.ServletUriComponentsBuilder@3e49647a]
spring-data-jpa spring-data
spring-data-jpa spring-data
edited Nov 26 '18 at 18:18
Stephane
asked Nov 24 '18 at 11:03
StephaneStephane
2,461114981
2,461114981
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I think you can check Pageable argument of your controller method and then remove from it unnecessary fields, something like this:
public ResponseEntity<?> myControllerMethod(..., Pageable page) {
Sort newSort = Sort.by(page.getSort()
.get()
.filter(order -> !order.getProperty().equals("confirmedEmail"))
.collect(Collectors.toList()));
PageRequest newPage = PageRequest.of(page.getPageNumber(), page.getPageSize(), newSort);
// using newPage instead of page...
}
To specify a default order you can use @PageableDefault
annotation, for example:
public ResponseEntity<?> myControllerMethod(..., @PageableDefault(sort = "lastname", direction = ASC) Pageable page) {
//...
}
I added this for the default sorting@PageableDefault(sort = { "lastname", "firstname" }, direction = Sort.Direction.ASC)
and it works nicely.
– Stephane
Nov 26 '18 at 13:48
Regarding stripping some unsortable columns from the pageable argument, I have an error with theget()
method being unavailable for the typeorg.springframework.data.domain.Sort;
. Instead of the.equals("confirmedEmail")
I would like to have an array of strings. So I'm trying this method:public static final Sort stripColumnsFromSorting(Pageable pageable) { return Sort.by(pageable.getSort() .get() .filter(order -> !order.getProperty().equals("confirmedEmail")) .collect(Collectors.toList())); }
– Stephane
Nov 26 '18 at 13:57
This methodpublic static final Sort stripColumnsFromSorting(Pageable pageable, Set<String> nonSortableColumns) { return Sort.by(pageable.getSort().stream().filter(order -> { return !nonSortableColumns.contains(order.getProperty()); }).collect(Collectors.toList())); }
compiles.
– Stephane
Nov 26 '18 at 14:22
1
@Stephane please remove your additions from my answer and add them to your own answer. Those additions are not mine...
– Cepr0
Nov 26 '18 at 18:08
My mistake ! I corrected that. Lucky you saw it !
– Stephane
Nov 26 '18 at 18:18
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53457465%2fhow-to-prevent-sorting-on-a-given-column%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I think you can check Pageable argument of your controller method and then remove from it unnecessary fields, something like this:
public ResponseEntity<?> myControllerMethod(..., Pageable page) {
Sort newSort = Sort.by(page.getSort()
.get()
.filter(order -> !order.getProperty().equals("confirmedEmail"))
.collect(Collectors.toList()));
PageRequest newPage = PageRequest.of(page.getPageNumber(), page.getPageSize(), newSort);
// using newPage instead of page...
}
To specify a default order you can use @PageableDefault
annotation, for example:
public ResponseEntity<?> myControllerMethod(..., @PageableDefault(sort = "lastname", direction = ASC) Pageable page) {
//...
}
I added this for the default sorting@PageableDefault(sort = { "lastname", "firstname" }, direction = Sort.Direction.ASC)
and it works nicely.
– Stephane
Nov 26 '18 at 13:48
Regarding stripping some unsortable columns from the pageable argument, I have an error with theget()
method being unavailable for the typeorg.springframework.data.domain.Sort;
. Instead of the.equals("confirmedEmail")
I would like to have an array of strings. So I'm trying this method:public static final Sort stripColumnsFromSorting(Pageable pageable) { return Sort.by(pageable.getSort() .get() .filter(order -> !order.getProperty().equals("confirmedEmail")) .collect(Collectors.toList())); }
– Stephane
Nov 26 '18 at 13:57
This methodpublic static final Sort stripColumnsFromSorting(Pageable pageable, Set<String> nonSortableColumns) { return Sort.by(pageable.getSort().stream().filter(order -> { return !nonSortableColumns.contains(order.getProperty()); }).collect(Collectors.toList())); }
compiles.
– Stephane
Nov 26 '18 at 14:22
1
@Stephane please remove your additions from my answer and add them to your own answer. Those additions are not mine...
– Cepr0
Nov 26 '18 at 18:08
My mistake ! I corrected that. Lucky you saw it !
– Stephane
Nov 26 '18 at 18:18
add a comment |
I think you can check Pageable argument of your controller method and then remove from it unnecessary fields, something like this:
public ResponseEntity<?> myControllerMethod(..., Pageable page) {
Sort newSort = Sort.by(page.getSort()
.get()
.filter(order -> !order.getProperty().equals("confirmedEmail"))
.collect(Collectors.toList()));
PageRequest newPage = PageRequest.of(page.getPageNumber(), page.getPageSize(), newSort);
// using newPage instead of page...
}
To specify a default order you can use @PageableDefault
annotation, for example:
public ResponseEntity<?> myControllerMethod(..., @PageableDefault(sort = "lastname", direction = ASC) Pageable page) {
//...
}
I added this for the default sorting@PageableDefault(sort = { "lastname", "firstname" }, direction = Sort.Direction.ASC)
and it works nicely.
– Stephane
Nov 26 '18 at 13:48
Regarding stripping some unsortable columns from the pageable argument, I have an error with theget()
method being unavailable for the typeorg.springframework.data.domain.Sort;
. Instead of the.equals("confirmedEmail")
I would like to have an array of strings. So I'm trying this method:public static final Sort stripColumnsFromSorting(Pageable pageable) { return Sort.by(pageable.getSort() .get() .filter(order -> !order.getProperty().equals("confirmedEmail")) .collect(Collectors.toList())); }
– Stephane
Nov 26 '18 at 13:57
This methodpublic static final Sort stripColumnsFromSorting(Pageable pageable, Set<String> nonSortableColumns) { return Sort.by(pageable.getSort().stream().filter(order -> { return !nonSortableColumns.contains(order.getProperty()); }).collect(Collectors.toList())); }
compiles.
– Stephane
Nov 26 '18 at 14:22
1
@Stephane please remove your additions from my answer and add them to your own answer. Those additions are not mine...
– Cepr0
Nov 26 '18 at 18:08
My mistake ! I corrected that. Lucky you saw it !
– Stephane
Nov 26 '18 at 18:18
add a comment |
I think you can check Pageable argument of your controller method and then remove from it unnecessary fields, something like this:
public ResponseEntity<?> myControllerMethod(..., Pageable page) {
Sort newSort = Sort.by(page.getSort()
.get()
.filter(order -> !order.getProperty().equals("confirmedEmail"))
.collect(Collectors.toList()));
PageRequest newPage = PageRequest.of(page.getPageNumber(), page.getPageSize(), newSort);
// using newPage instead of page...
}
To specify a default order you can use @PageableDefault
annotation, for example:
public ResponseEntity<?> myControllerMethod(..., @PageableDefault(sort = "lastname", direction = ASC) Pageable page) {
//...
}
I think you can check Pageable argument of your controller method and then remove from it unnecessary fields, something like this:
public ResponseEntity<?> myControllerMethod(..., Pageable page) {
Sort newSort = Sort.by(page.getSort()
.get()
.filter(order -> !order.getProperty().equals("confirmedEmail"))
.collect(Collectors.toList()));
PageRequest newPage = PageRequest.of(page.getPageNumber(), page.getPageSize(), newSort);
// using newPage instead of page...
}
To specify a default order you can use @PageableDefault
annotation, for example:
public ResponseEntity<?> myControllerMethod(..., @PageableDefault(sort = "lastname", direction = ASC) Pageable page) {
//...
}
edited Nov 26 '18 at 18:17
Stephane
2,461114981
2,461114981
answered Nov 26 '18 at 10:37
Cepr0Cepr0
9,40721647
9,40721647
I added this for the default sorting@PageableDefault(sort = { "lastname", "firstname" }, direction = Sort.Direction.ASC)
and it works nicely.
– Stephane
Nov 26 '18 at 13:48
Regarding stripping some unsortable columns from the pageable argument, I have an error with theget()
method being unavailable for the typeorg.springframework.data.domain.Sort;
. Instead of the.equals("confirmedEmail")
I would like to have an array of strings. So I'm trying this method:public static final Sort stripColumnsFromSorting(Pageable pageable) { return Sort.by(pageable.getSort() .get() .filter(order -> !order.getProperty().equals("confirmedEmail")) .collect(Collectors.toList())); }
– Stephane
Nov 26 '18 at 13:57
This methodpublic static final Sort stripColumnsFromSorting(Pageable pageable, Set<String> nonSortableColumns) { return Sort.by(pageable.getSort().stream().filter(order -> { return !nonSortableColumns.contains(order.getProperty()); }).collect(Collectors.toList())); }
compiles.
– Stephane
Nov 26 '18 at 14:22
1
@Stephane please remove your additions from my answer and add them to your own answer. Those additions are not mine...
– Cepr0
Nov 26 '18 at 18:08
My mistake ! I corrected that. Lucky you saw it !
– Stephane
Nov 26 '18 at 18:18
add a comment |
I added this for the default sorting@PageableDefault(sort = { "lastname", "firstname" }, direction = Sort.Direction.ASC)
and it works nicely.
– Stephane
Nov 26 '18 at 13:48
Regarding stripping some unsortable columns from the pageable argument, I have an error with theget()
method being unavailable for the typeorg.springframework.data.domain.Sort;
. Instead of the.equals("confirmedEmail")
I would like to have an array of strings. So I'm trying this method:public static final Sort stripColumnsFromSorting(Pageable pageable) { return Sort.by(pageable.getSort() .get() .filter(order -> !order.getProperty().equals("confirmedEmail")) .collect(Collectors.toList())); }
– Stephane
Nov 26 '18 at 13:57
This methodpublic static final Sort stripColumnsFromSorting(Pageable pageable, Set<String> nonSortableColumns) { return Sort.by(pageable.getSort().stream().filter(order -> { return !nonSortableColumns.contains(order.getProperty()); }).collect(Collectors.toList())); }
compiles.
– Stephane
Nov 26 '18 at 14:22
1
@Stephane please remove your additions from my answer and add them to your own answer. Those additions are not mine...
– Cepr0
Nov 26 '18 at 18:08
My mistake ! I corrected that. Lucky you saw it !
– Stephane
Nov 26 '18 at 18:18
I added this for the default sorting
@PageableDefault(sort = { "lastname", "firstname" }, direction = Sort.Direction.ASC)
and it works nicely.– Stephane
Nov 26 '18 at 13:48
I added this for the default sorting
@PageableDefault(sort = { "lastname", "firstname" }, direction = Sort.Direction.ASC)
and it works nicely.– Stephane
Nov 26 '18 at 13:48
Regarding stripping some unsortable columns from the pageable argument, I have an error with the
get()
method being unavailable for the type org.springframework.data.domain.Sort;
. Instead of the .equals("confirmedEmail")
I would like to have an array of strings. So I'm trying this method: public static final Sort stripColumnsFromSorting(Pageable pageable) { return Sort.by(pageable.getSort() .get() .filter(order -> !order.getProperty().equals("confirmedEmail")) .collect(Collectors.toList())); }
– Stephane
Nov 26 '18 at 13:57
Regarding stripping some unsortable columns from the pageable argument, I have an error with the
get()
method being unavailable for the type org.springframework.data.domain.Sort;
. Instead of the .equals("confirmedEmail")
I would like to have an array of strings. So I'm trying this method: public static final Sort stripColumnsFromSorting(Pageable pageable) { return Sort.by(pageable.getSort() .get() .filter(order -> !order.getProperty().equals("confirmedEmail")) .collect(Collectors.toList())); }
– Stephane
Nov 26 '18 at 13:57
This method
public static final Sort stripColumnsFromSorting(Pageable pageable, Set<String> nonSortableColumns) { return Sort.by(pageable.getSort().stream().filter(order -> { return !nonSortableColumns.contains(order.getProperty()); }).collect(Collectors.toList())); }
compiles.– Stephane
Nov 26 '18 at 14:22
This method
public static final Sort stripColumnsFromSorting(Pageable pageable, Set<String> nonSortableColumns) { return Sort.by(pageable.getSort().stream().filter(order -> { return !nonSortableColumns.contains(order.getProperty()); }).collect(Collectors.toList())); }
compiles.– Stephane
Nov 26 '18 at 14:22
1
1
@Stephane please remove your additions from my answer and add them to your own answer. Those additions are not mine...
– Cepr0
Nov 26 '18 at 18:08
@Stephane please remove your additions from my answer and add them to your own answer. Those additions are not mine...
– Cepr0
Nov 26 '18 at 18:08
My mistake ! I corrected that. Lucky you saw it !
– Stephane
Nov 26 '18 at 18:18
My mistake ! I corrected that. Lucky you saw it !
– Stephane
Nov 26 '18 at 18:18
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53457465%2fhow-to-prevent-sorting-on-a-given-column%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown