自从我上次使用1.4.X版本以来,我一直在尝试更新有关Java的知识…我正在尝试使用1.6.0,尤其是Java Persistence
API(2.0)。
我设法创建了一个实体类。因为我能够存储和检索数据,所以它正在工作。
但是我无所事事,当我决定用表的列名填充JList时并没有成功…
这是一个简单的类,看起来像:
@Entity
@Table(name = "T_CURRENCY", schema = "APP")
public class Currency implements Serializable {
@Transient
private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private Short id;
@Basic(optional = false)
@Column(name = "NAME")
private String name;
...
}
有没有办法检索列名?
我找到了这个帖子。似乎是一个有效的解决方案,但我认为它可能更容易/更优雅?我不知道为什么,但是我期待一个已经完成的方法…
TIA,
鲍勃
您可以解析列注释:
for (Field field : entity.getClass().getDeclaredFields()) {
Column column = field.getAnnotation(Column.class);
if (column != null) {
columnNames.add(column.name());
}
}
请注意,Column
注释是可选的,因此必须确保已定义。如果不是这样,您将不得不咨询名称转换机制,这对于这个来说太过分了。
问题内容: 是否可以通过使用列的索引来获取列名?我浏览了API文档,但找不到任何东西。 问题答案: 你可以从元数据中获取此信息。参见 例如 你可以从那里获取列名称。如果你这样做 然后也会为你获取检索到的标签名称。
在编写jpql查询时,我可以使用COLUMN()引用未映射的列(我知道它是eclipselink特定的)。在使用javax.persistence.criteria.CriteriaBuilder、javax.persistence.criteria.Predicate等构建标准时,有没有任何方法可以引用未映射的列? 我面临的问题:我有带有全文搜索列的postgresql表。我不希望它映射到实体对
问题内容: 我想知道是否有一种方法可以为JPA中的特定持久性单元获取所有Entities类及其元数据。 通过元数据,我不仅指字段,还指它们的列名,长度,精度,数据类型,以及表名和我可以得到的任何东西。我尝试使用元模型,但我认为这仅适用于JPQL查询。 我需要向用户显示某个PU的所有活动实体,并且我不想在某些数组或数据库中对它们进行硬编码,我希望API告诉我它具有什么实体。并且,如果可能,获取每个实
我想知道是否有办法获取JPA中特定持久单元的所有实体类及其元数据。 我所说的元数据不仅指字段,还指它们的列名、长度、精度、数据类型,以及表名和我能得到的任何东西。我尝试使用元模型,但我认为它更适合JPQL查询。 我需要能够向用户显示某些 PU 的所有活动实体,并且我不想在某个数组或数据库中对它们进行硬编码,我希望 API 告诉我它有哪些实体。此外,如果可能,请获取每个实体的托管实例。 我想我可以尝
问题内容: 我正在编写一些工具,当对它应用任何查询时,该工具必须检索检索到的数据集的列名。 如果您熟悉phpMyAdmin,您将意识到SQL窗格可以执行查询并显示结果以及列名。我想知道查询会有多困难,它总是产生列名,而幕后的编程实际上是什么?就像它会分析查询,然后从查询中查找表名称,然后首先使用查询检索列名称,然后再检索数据吗? 有什么更好的办法吗? 已更新 对不起,不完整的信息,我想我必须说我在
问题内容: 我有一个Client和Affiliate类,它是从Person类继承的。正在使用联接的继承策略类型- 它们中的每一个都与父类共享主键。由于没有鉴别符列,我们选择使用DescriptorCustomizer和ClassExtractor。但是它并没有真正让人们知道它是如何工作的,而且代码似乎也没有编译。如果有人给出一个带有代码片段的漂亮示例以供理解,那将是很好的。 问题答案: 根据上述文