在做个网盘demo,现在每个用户与上传的文件时M-N的关系,我用hibernate建立里双向N-N的model,User类和File类。现在想查询在同个用户下的所有文件,该怎么查
File@Entity
@Table(name = "file", catalog = "forbeifne")
public class File implements java.io.Serializable { private Integer fileId;
private String filename;
private double filesize;
private Date filetime;
private String filepath;
private Set<User> user = new HashSet<>(); @ManyToMany(targetEntity=User.class)
@JoinTable(name="userfile"
,joinColumns=@JoinColumn(name="FileID", referencedColumnName="FileID"),
inverseJoinColumns=@JoinColumn(name="UserID",referencedColumnName="UserID")
)
public Set<User> getUser() {
return user;
} public void setUser(Set<User> user) {
this.user = user;
} public File() {
} public File(String filename, double filesize, Date filetime) {
this.filename = filename;
this.filesize = filesize;
this.filetime = filetime;
} @Id
@GeneratedValue(strategy = IDENTITY) @Column(name = "FileID", unique = true, nullable = false)
public Integer getFileId() {
return this.fileId;
} public void setFileId(Integer fileId) {
this.fileId = fileId;
} @Column(name = "filename", nullable = false, length = 30)
public String getFilename() {
return this.filename;
} public void setFilename(String filename) {
this.filename = filename;
} @Column(name = "filesize", nullable = false, precision = 6)
public double getFilesize() {
return this.filesize;
} public void setFilesize(double filesize) {
this.filesize = filesize;
} @Temporal(TemporalType.TIMESTAMP)
@Column(name = "filetime", nullable = false, length = 19)
public Date getFiletime() {
return this.filetime;
} public void setFiletime(Date filetime) {
this.filetime = filetime;
}

@Column(name = "filepath")
public String getFilepath() {
return filepath;
} public void setFilepath(String filepath) {
this.filepath = filepath;
}}Userpackage com.PO;// default package
// Generated 2017-6-20 17:35:15 by Hibernate Tools 4.3.5.Finalimport javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;import java.util.HashSet;
import java.util.Set;import javax.persistence.CollectionTable;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;/**
 * User generated by hbm2java
 */
@Entity
@Table(name = "user", catalog = "forbeifne", uniqueConstraints = @UniqueConstraint(columnNames = "username"))
public class User implements java.io.Serializable { private Integer userId;
private String username;
private String password; public User() {
} public User(String username, String password) {
this.username = username;
this.password = password;
}

private Set<File> file = new HashSet<>();

@ManyToMany(targetEntity=File.class)
@JoinTable(name="userfile", joinColumns=@JoinColumn(name="UserID",referencedColumnName="UserID"),
inverseJoinColumns=@JoinColumn(name="FileID",referencedColumnName="FileID"))
public Set<File> getFile() {
return file;
} public void setFile(Set<File> file) {
this.file = file;
} @Id
@GeneratedValue(strategy = IDENTITY) @Column(name = "UserID", unique = true, nullable = false)
public Integer getUserId() {
return this.userId;
} public void setUserId(Integer userId) {
this.userId = userId;
} @Column(name = "username", unique = true, nullable = false)
public String getUsername() {
return this.username;
} public void setUsername(String username) {
this.username = username;
} @Column(name = "password", nullable = false)
public String getPassword() {
return this.password;
} public void setPassword(String password) {
this.password = password;
}}