在JPA,关系数据库等中,什么是元组? [关闭]

问题描述 投票:4回答:2

我正在学习Hibernate和JPA,而且我一直在找这个术语。有人可以用实用和教学的方式解释我,这个术语是什么,以及它与JPA / Hibernate / Databases的关系?

我想知道它是否是一种包含任何类型数据的数据结构,但我不确定它是否真的如此。另外,我不知道它在与JPA的查询中的关系......谁能给我一些亮点?

编辑

伙计们,不要沉淀。我在谷歌,dictionary(英语),维基百科,社区(stackoverflow)以及JPA Tuple API上搜索过。

以下是我的一些搜索字词:

  • 什么是元组
  • 元组
  • 数据库元组
  • JPA Tuple

Java EE 6的所有文档都说有关Tuple的内容如下:

用于提取查询结果元组的元素的接口。

这解释了“很多”。

我找不到具体,扎实,简洁的东西,真正解释它是什么。像我这样的一些凡人很难生,不知道一切。我本身不会说英语,我无法访问宇宙的全部内容,有时我会尝试使这个社区在问题和答案中最实用,简单,友好和可敬。这永远不够。不要以为我在来这里之前没有研究任何东西,我是无知的,懒散的,懒惰的等等。这是先入为主!

为了上帝的爱......我用翻译来写作,而我对某些事情没有实际的理解,这些事情对别人来说是如此容易理解。我的问题甚至遵循了关于stackoverflow的问题规则。当我问一些事情时,它总是出现的。当我尝试给出答案时,我总是先尝试研究,并尽可能地回应其他用户。让我有些懊悔有时参加一些社区...我要求知识,而不是地位,我相信其他人可能会有同样的问题。人们常常把这个社区视为禁忌,而不是交换知识的地方。再次......为了上帝的爱...

java database hibernate jpa
2个回答
2
投票

元组是一个从数学中得出的通用术语,它只是指“按特定顺序排列的几个值”。如果你能说“给我这个东西的第二价值”,那么事情就是一个元组。

他们没有单一的符号,但你可以想象(1,2,3)("a","b","c")("John", "Smith", 12, false)都是元组的例子,分别有3个,3个和4个项目。请注意,元组的概念对值没有限制,因此它们可以有不同的类型。

从技术上讲,ListString[]Vector都是元组。但是在像Java这样的语言中,这个术语主要用于项目类型不同的时候 - 否则我们会谈论序列。

在像JPA这样的库中,该术语可与术语记录和行互换使用。元组可以用特殊的类来表示,但Java中常用的一种方法就是拥有一个qazxsw poi。


5
投票

如前所述,Object[]是一个有序的事物清单。它有助于理解为什么要使用这样的东西。考虑到数据库中有一个表,无论出于何种原因,您只想从该表中选择一些列。从这样的查询中,您可以获得对象和元组。例如,考虑一个有两个字段的实体,Tuplelatitude

longitude

如果只想查询纬度和经度列,您在哪里放置结果?其中一种方法是使用@Entity public class User { @Id @GeneratedValue private Long id; private BigDecimal latitude; private BigDecimal longitude;

Tuples

正如您所看到的,// With objects, the alias information is lost. List<Object[]> s = em.createQuery("select u.lattitude as lattitude, u.longitude as longitude from User u", Object[].class).getResultList(); s.stream().forEach((record) -> { System.out.println(record[0]+","+record[1]); }); // With Tuples, the alias information is retained. List<Tuple> t = em.createQuery("select u.lattitude as lattitude, u.longitude as longitude from User u", Tuple.class).getResultList(); t.stream().forEach((record) -> { System.out.println( record.get("lattitude") +","+record.get("longitude")); }); 有一个Tuples属性,可以通过查询填写,然后您可以使用它。这比alias更方便。此外,Object支持Java Generics,因此您可以拥有比使用TupleElement更多的类型安全性。

© www.soinside.com 2019 - 2024. All rights reserved.