CREATE TABLE `member` (
`username` varchar(20) NOT NULL,
`updatetime` date NOT NULL,
`visible` bit(1) NOT NULL,
PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8CREATE TABLE `document` (
`id` int(11) NOT NULL auto_increment,
`content` longtext NOT NULL,
`title` varchar(80) NOT NULL,
`updateTime` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `document_member` (
`documentid` int(11) NOT NULL,
`username` varchar(20) NOT NULL,
PRIMARY KEY (`documentid`,`username`),
KEY `FKB8B8523E49B513DE` (`username`),
KEY `FKB8B8523EF8428DEF` (`documentid`),
CONSTRAINT `FKB8B8523E49B513DE` FOREIGN KEY (`username`) REFERENCES `member` (`username`),
CONSTRAINT `FKB8B8523EF8428DEF` FOREIGN KEY (`documentid`) REFERENCES `document` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8三个表如上。使用hibernate
document实体中
@ManyToMany(cascade=CascadeType.REFRESH,fetch=FetchType.EAGER)
@JoinTable(name="document_member",joinColumns=@JoinColumn(name="documentid"),
inverseJoinColumns=@JoinColumn(name="username"))
private Set<Member> members = new HashSet<Member>();
member实体中
@ManyToMany(mappedBy="members",cascade=CascadeType.REFRESH)
private Set<Document> documents = new HashSet<Document>();
现在我需要根据人员读取document表中符合的数据。
Member member = memberService.find("传递的人员参数username");
ActionContext.getContext().put("documents", member.getDocuments());
到此结束,以上能正确获取符合条件的文章。但没办法排序,请问有什么办法呢?
`username` varchar(20) NOT NULL,
`updatetime` date NOT NULL,
`visible` bit(1) NOT NULL,
PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8CREATE TABLE `document` (
`id` int(11) NOT NULL auto_increment,
`content` longtext NOT NULL,
`title` varchar(80) NOT NULL,
`updateTime` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `document_member` (
`documentid` int(11) NOT NULL,
`username` varchar(20) NOT NULL,
PRIMARY KEY (`documentid`,`username`),
KEY `FKB8B8523E49B513DE` (`username`),
KEY `FKB8B8523EF8428DEF` (`documentid`),
CONSTRAINT `FKB8B8523E49B513DE` FOREIGN KEY (`username`) REFERENCES `member` (`username`),
CONSTRAINT `FKB8B8523EF8428DEF` FOREIGN KEY (`documentid`) REFERENCES `document` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8三个表如上。使用hibernate
document实体中
@ManyToMany(cascade=CascadeType.REFRESH,fetch=FetchType.EAGER)
@JoinTable(name="document_member",joinColumns=@JoinColumn(name="documentid"),
inverseJoinColumns=@JoinColumn(name="username"))
private Set<Member> members = new HashSet<Member>();
member实体中
@ManyToMany(mappedBy="members",cascade=CascadeType.REFRESH)
private Set<Document> documents = new HashSet<Document>();
现在我需要根据人员读取document表中符合的数据。
Member member = memberService.find("传递的人员参数username");
ActionContext.getContext().put("documents", member.getDocuments());
到此结束,以上能正确获取符合条件的文章。但没办法排序,请问有什么办法呢?
解决方案 »
- SSH整合过程中,Action中无法获得service类的实例
- 求大神
- 高手帮忙写个函数(急)!!
- org.apache.jasper.JasperException: Unable to load class for JSP是什么原因请帮帮忙!
- 急聘:JAVA程序开发(1-2年经验),符合者5月16日面试
- Hibernate映射文件中的<property>中的name="xxx"必须与POJO中的getXXX,setXXX对应吗?
- 反射机制的内存问题
- 关于JSP 请高手指教
- 一个郁闷了我一个星期的问题,求大家帮忙解决(解决就给分,在线等)~~~
- BufferedReader中的read(数组)方法和readline()方法
- 泛型Set<>中不能传参数
- hibernate映射类问题。
import java.util.Date;
public class Document {
private int id;
private String content;
private String title;
private Date updateTime;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
public class Test {
public static void main(String[] args) {
//创造数据
List<Document> list = new ArrayList<Document>();
Document d1 = new Document();
d1.setId(1);
d1.setContent("aaaa");
d1.setTitle("t1");
d1.setUpdateTime(StringToDate("2010-07-05"));
Document d2 = new Document();
d2.setId(2);
d2.setContent("bbbb");
d2.setTitle("t2");
d2.setUpdateTime(StringToDate("2010-07-06"));
Document d3 = new Document();
d3.setId(3);
d3.setContent("cccc");
d3.setTitle("t3");
d3.setUpdateTime(StringToDate("2010-07-01"));
Document d4 = new Document();
d4.setId(4);
d4.setContent("ddddd");
d4.setTitle("t4");
d4.setUpdateTime(StringToDate("2010-08-10"));
list.add(d1);
list.add(d2);
list.add(d3);
list.add(d4);
// 假设我们要根据时间排序。
Collections.sort(list, new Comparator<Document>() {
public int compare(Document o1, Document o2) {
return o1.getUpdateTime().after(o2.getUpdateTime()) ? 1 : (o1
.getUpdateTime().before(o2.getUpdateTime()) ? -1 : 0);
}
});
for (Document d : list) {
System.out.println("ID:" + d.getId() + " Content:" + d.getContent()
+ " Date:" + DateToString(d.getUpdateTime()));
} } public static Date StringToDate(String dateStr) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = format.parse(dateStr);
} catch (java.text.ParseException e) {
e.printStackTrace();
}
return date;
} public static String DateToString(Date date) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = format.format(date);
return dateStr;
}}