【java】實體類中 Set<對象> 按照對象的某個字段對set排序


Java利用hibernate進行一對多查詢時,把另一張表作為一個屬性存進這張表的字段中,返回的類型是set類型,要對返回的set類型進行排序

user表

package onlyfun.caterpillar;

public class User {
    private Long id;
    private String name;
 
    public User() {}

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

  room表:

package onlyfun.caterpillar; 

import java.util.Set;

public class Room { 
    private Long id; 
    private String address;
    private Set<User> users = new HashSet<User>();
    private List<User> user;
 
    public Room() {}
 
    public Long getId() { 
        return id; 
    } 

    public void setId(Long id) { 
        this.id = id; 
    } 
 
    public String getAddress() { 
        return address; 
    }
 
    public void setAddress(String address) { 
        this.address = address; 
    }

    public Set getUsers() {
        return users;
    }

    public void setUsers(Set users) {
        this.users = users;
    } 
 
   @Transient
    public List<User> getUser() {
        user= new ArrayList<User>(users);
        Collections.sort(user, new Comparator<User>() {
            @Override
            public int compare(User o1, User o2) {
                return o1.getId()<o2.getId() ? -1 :1;
            }
        });
        return user;
    }

    public void setUser(List<User> user) {
        this.user= user;
    }
}

  在room實體中加一個List<User>用來裝將Set按照自己的想法排序之后的結果在使用的地方直接取List里面的值即可。

把private Set<User> users = new HashSet<User>();查詢出來的數據放到List<User>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM