Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate帮助我编写查询_Java_Database_Hibernate - Fatal编程技术网

Java Hibernate帮助我编写查询

Java Hibernate帮助我编写查询,java,database,hibernate,Java,Database,Hibernate,我正在用java制作一个电子邮件客户端。当用户创建带有附件(文档)的邮件时,它会将有关电子邮件的所有数据保存在数据库中,但保存在多个表中,如document_table.title中的附件标题、msgnumber.num中的邮件数、msgnumber.date中的日期、OfficialPerson.secondname中的发件人名称。 我如何检索所有这些数据并显示它(我为此使用Jtable)?如果数据保存在一个表中而不是多个表中,我知道如何获取数据。请帮帮我 一种格式有许多文档网 文件: @En

我正在用java制作一个电子邮件客户端。当用户创建带有附件(文档)的邮件时,它会将有关电子邮件的所有数据保存在数据库中,但保存在多个表中,如document_table.title中的附件标题、msgnumber.num中的邮件数、msgnumber.date中的日期、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;
格式:

@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;

文件是空的吗?我哪里错了?

您只需使用select语句为所有希望检索的值编写查询。Hibernate将返回一个数组,其中包含与select语句相同顺序的索引值

挑选 来自个人作为P,地址作为A,订单作为O,用户作为U 其中P.id=5 A.personId=P.id O.personId=P.id 而U.personId=P.id


这将返回一个数组,其中包含{person,address,List,User}

您只需使用select语句为所有要检索的值编写查询即可。Hibernate将返回一个数组,其中包含与select语句相同顺序的索引值

挑选 来自个人作为P,地址作为A,订单作为O,用户作为U 其中P.id=5 A.personId=P.id O.personId=P.id 而U.personId=P.id


这将返回一个数组,其中包含{person,address,List,User}

Hibernate是一个ORM工具,“O”代表“object”。从映射到表和列的电子邮件对象开始。然后使用HQL查询满足特定限制的电子邮件实例


JTable或web页面是与查询对象的方式不同的显示问题。

Hibernate是一种ORM工具,“O”代表“对象”。从映射到表和列的电子邮件对象开始。然后使用HQL查询满足特定限制的电子邮件实例


JTable或web页面是与查询对象的方式不同的显示问题。

如果定义类之间的关系,例如:

class Person {    
   @OneToMany(cascade=CascadeType.ALL,
              fetch= FetchType.EAGER)
   private Set<Email> emails = new HashSet();

   // getters/setters and some other attributes are not shown
以下是双向一对一关系的示例

class Person {
    @OneToOne(cascade=CascadeType.ALL)
    private Address address;


class Address {
    @OneToOne(mappedBy=”address”)
    private Person person

如果定义类之间的关系,例如:

class Person {    
   @OneToMany(cascade=CascadeType.ALL,
              fetch= FetchType.EAGER)
   private Set<Email> emails = new HashSet();

   // getters/setters and some other attributes are not shown
以下是双向一对一关系的示例

class Person {
    @OneToOne(cascade=CascadeType.ALL)
    private Address address;


class Address {
    @OneToOne(mappedBy=”address”)
    private Person person


你能提供四张桌子的例子吗?这真的很有帮助。表示感谢的最佳方式是投票支持我的答案或将其标记为您问题的解决方案。您能提供四个表格的示例吗?这真的很有帮助。表示感谢的最好方式是投票支持我的答案或将其标记为你问题的解决方案。谢谢你的回答。我不知道如何为多个表(对象)编写hql查询。或者我需要创建代理对象吗?我没有电子邮件对象。所有数据存储在不同的表中。是的,您有表,但这些是ORM的“R”端。如果没有对象,就不应该使用Hibernate。只需直接使用JDBC和SQL。感谢您的回复。我的意思是,我的消息数据分布在多个类中,并且没有Expirence从两个以上的对象检索它。我的表没有通过ID的直接连接。你的对象和关系模型听起来都像是无望的混乱。我两个都忘了。试试JDBC和SQL,谢谢你的回答。我不知道如何为多个表(对象)编写hql查询。或者我需要创建代理对象吗?我没有电子邮件对象。所有数据存储在不同的表中。是的,您有表,但这些是ORM的“R”端。如果没有对象,就不应该使用Hibernate。只需直接使用JDBC和SQL。感谢您的回复。我的意思是,我的消息数据分布在多个类中,并且没有Expirence从两个以上的对象检索它。我的表没有通过ID的直接连接。你的对象和关系模型听起来都像是无望的混乱。我两个都忘了。试试JDBC和SQL,谢谢你们的回答。但是如果我的对象没有直接关系呢?它们通过代理表(对象)连接。我不知道代理表。我的意思是,它们通过IDS没有直接关系。你能给我一个关系示例吗?表文档有FK ValidatorID,表验证器有FK OrganizationID。我需要选择给定的组织及其所有文档。如果你能举个例子的话,我会帮上大忙的!谢谢你的回答。但是如果我的对象没有直接关系呢?它们通过代理表(对象)连接。我不知道代理表。我的意思是,它们通过IDS没有直接关系。你能给我一个关系示例吗?表文档有FK ValidatorID,表验证器有FK OrganizationID。我需要选择给定的组织及其所有文档。如果你能举个例子的话,我会帮上大忙的!
Session s = HibernateUtil.getSessionFactory().openSession();
Person p = (Person) s.get(Person.class, 1);
s.close();

System.out.println(p.getName());
System.out.println(p.getEmails());
class Person {
    @OneToOne(cascade=CascadeType.ALL)
    private Address address;


class Address {
    @OneToOne(mappedBy=”address”)
    private Person person