功能需求:对指定的人员发公文,并且能得知是否已经查看公文。
现有数据结构是两张表
表一、人员表 member 其中字段是username
表二、文档表 document 其中字段是id,body现在使用JPA,个人采用多对多关系。主要代码如下
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  字段是documentid和username
但我要实现用户是否读了文章的功能。那必须document_member里面有个状态字段stauts。1、用JPA请问怎么标注,怎么弄?2、再JPA环境下,大家要是做此等功能,怎么规划数据结构,用JPA来做,还是用普通的sql+jsp来做?

解决方案 »

  1.   

    换一种思路,在document中间加一个状态字段stauts,当人员读的时候,将其设为true,然后再查看这个状态是否为true,不就知道是不是已经读了。关联ID就行了。
      

  2.   

    顶一下。肯定要在关联表内增加个状态字段。谁能帮忙?使用jpa注解方式
      

  3.   

    顶。找到一本电子书,但只有目录。应该跟 7.2.3 把列添加到联结表 这章内容有关系。hibernate的作者写的。谁会?指点一下!
      

  4.   

    顶。谁有hibernate的作者写的中文版本的电子书,请告知地址.
      

  5.   

    自己解决了。多对多在hibernate中性能低下,一般不使用,基本上多对多都可以转换成两个多对一。