我正在用java制作一个电子邮件客户端。当用户使用附件(文档)创建邮件时,它会将所有关于电子邮件的数据保存在数据库中,但保存在多个表中,如Document_table.title中的附件标题,msgnumber.num中的邮件数量,msgnumber.date中的日期,发件人的名称在Official_Person.name和OfficialPerson.secondname中。 我如何检索所有这些数据并显示它(即时使用Jtable为此)?我知道如何获取数据,如果它保存在一个表中,但不是多个。请帮帮我。休眠帮我写查询
一种格式有很多文档。
文献:
@Entity
@Table(name="DOCUMENT"
,schema="Default"
)
public class Document implements java.io.Serializable {
@ManyToOne
@JoinColumn(name = "FormatID")
private Format format;
@Id
@Column(name = "DocumentID", unique = true, nullable = false)
private int documentId;
FORMAT:
@Entity
@Table(name="FORMAT"
,schema="Default"
)
public class Format implements java.io.Serializable {
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "FormatID")
private Set<Document> documents = new HashSet();
@Id
@Column(name = "FormatID", unique = true, nullable = false)
private int formatId;
format.hbm
<hibernate-mapping>
<class name="entity2.Format" table="FORMAT">
<id name="formatId" type="int">
<column name="FormatID" length="2000000000" />
<generator class="native" />
</id>
<set name="documents" table="DOCUMENT"
inverse="true" lazy="true" fetch="select">
<key>
<column name="FormatID" not-null="true" />
</key>
<one-to-many class="entity2.Document" />
</set>
document.hbm
<hibernate-mapping>
<class name="entity2.Document" table="DOCUMENT">
<id name="documentId" type="int">
<column name="DocumentID" length="2000000000" />
<generator class="native" />
</id>
<many-to-one name="format" class="entity2.Format" fetch="select">
<column name="FormatID" not-null="true" />
</many-to-one>
我要检索的所有文件格式1:
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Format f = (Format) session.get(Format.class, 1);
System.out.println(f.getName());
System.out.println(f.getDocuments());
文件是空的?我在哪里错了?
谢谢你的回答。但是如果我的物体没有直接关系呢?他们通过代理表(对象)连接。 – bunnyjesse112
我不知道代理表。 – wannik
我的意思是他们没有直接关系通过ID – bunnyjesse112