草庐IT

java - JPA 无法解析列/IntelliJ

我正在尝试使用HibernateJPA实现来映射一些Java类。我的问题是我不能使用硬编码的字符串作为列名。您可以在下图中看到我收到的错误消息。我使用OpenJPA作为我的默认JPA提供程序,并且已经尝试更改它。IntelliJ版本14.0.3问候, 最佳答案 您必须将您的数据源(首先在数据库View中创建一个数据源-也就是您真正的JDBC数据库连接)与一个持久性单元或session工厂(hibernate.cfg.xml)相关联。按照以下步骤操作,警告将消失:打开Persistence工具窗口(查看|工具窗口|坚持)。右键单击必要

Java 枚举、JPA 和 Postgres 枚举 - 如何让它们一起工作?

我们有一个带有postgres枚举的postgres数据库。我们开始将JPA构建到我们的应用程序中。我们也有反射(reflect)postgres枚举的Java枚举。现在最大的问题是如何让JPA一方面理解Java枚举,另一方面理解postgres枚举?Java方面应该相当容易,但我不知道如何做postgres方面。 最佳答案 我实际上一直在使用一种比使用PGObject和转换器更简单的方法。由于在Postgres中枚举很自然地转换为文本,你只需要让它做它最擅长的事情。如果他不介意,我将借用Arjan的情绪示例:Postgres中的枚

Java 枚举、JPA 和 Postgres 枚举 - 如何让它们一起工作?

我们有一个带有postgres枚举的postgres数据库。我们开始将JPA构建到我们的应用程序中。我们也有反射(reflect)postgres枚举的Java枚举。现在最大的问题是如何让JPA一方面理解Java枚举,另一方面理解postgres枚举?Java方面应该相当容易,但我不知道如何做postgres方面。 最佳答案 我实际上一直在使用一种比使用PGObject和转换器更简单的方法。由于在Postgres中枚举很自然地转换为文本,你只需要让它做它最擅长的事情。如果他不介意,我将借用Arjan的情绪示例:Postgres中的枚

java - 在 JPA 中保存列表的顺序

我有以下关于JPA的问题:我可以保存java.util.List中元素的顺序吗?在我的应用程序中,我将元素放入列表的顺序很重要,但是在我从数据库中获取这些集合之后,顺序就不一样了(如预期的那样)。你能告诉我解决这个问题的方法吗?附:我放在集合中的实体中没有一个字段可以用来对它们进行排序。罗森 最佳答案 在JPA1中有一些很老套的方法可以做到这一点,但切换到JPA2提供程序是最简单的。@OrderColumn注释支持是您正在寻找的。Eclipselinkhaveanoktutorialonhowtouseit.

java - 在 JPA 中保存列表的顺序

我有以下关于JPA的问题:我可以保存java.util.List中元素的顺序吗?在我的应用程序中,我将元素放入列表的顺序很重要,但是在我从数据库中获取这些集合之后,顺序就不一样了(如预期的那样)。你能告诉我解决这个问题的方法吗?附:我放在集合中的实体中没有一个字段可以用来对它们进行排序。罗森 最佳答案 在JPA1中有一些很老套的方法可以做到这一点,但切换到JPA2提供程序是最简单的。@OrderColumn注释支持是您正在寻找的。Eclipselinkhaveanoktutorialonhowtouseit.

java - 如何使用 SqlResultSetMapping 将 JPA NativeQuery 的结果集映射到 POJO

我正在尝试使用@SqlResultSetMapping和@ConstructorResult将native查询的结果映射到POJO。这是我的代码:@SqlResultSetMapping(name="foo",classes={@ConstructorResult(targetClass=Bar.class,columns={@ColumnResult(name="barId",type=Long.class),@ColumnResult(name="barName",type=String.class),@ColumnResult(name="barTotal",type=Long.

java - 如何使用 SqlResultSetMapping 将 JPA NativeQuery 的结果集映射到 POJO

我正在尝试使用@SqlResultSetMapping和@ConstructorResult将native查询的结果映射到POJO。这是我的代码:@SqlResultSetMapping(name="foo",classes={@ConstructorResult(targetClass=Bar.class,columns={@ColumnResult(name="barId",type=Long.class),@ColumnResult(name="barName",type=String.class),@ColumnResult(name="barTotal",type=Long.

java - 修剪 JPA 中的字符串字段

我有一个数据类型为char(20)的列的db表。我不允许将其更改为varchar。我正在编写一个映射到该表的JPA实体。我希望在我的实体类中表示此列的字符串字段始终包含修剪后的值,而不是db中存在的用空格填充的20个字符的值。我看不出有什么简单的方法可以做到这一点。(注释会摇滚!)。目前我只是从我的getter()中返回一个修剪后的值,但这感觉像是一个杂物。谷歌搜索对此没有任何帮助。有什么想法吗? 最佳答案 或者你可以使用生命周期注解:@EntitypublicclassMyEntity{@PostLoadprotectedvoid

java - 修剪 JPA 中的字符串字段

我有一个数据类型为char(20)的列的db表。我不允许将其更改为varchar。我正在编写一个映射到该表的JPA实体。我希望在我的实体类中表示此列的字符串字段始终包含修剪后的值,而不是db中存在的用空格填充的20个字符的值。我看不出有什么简单的方法可以做到这一点。(注释会摇滚!)。目前我只是从我的getter()中返回一个修剪后的值,但这感觉像是一个杂物。谷歌搜索对此没有任何帮助。有什么想法吗? 最佳答案 或者你可以使用生命周期注解:@EntitypublicclassMyEntity{@PostLoadprotectedvoid

java - JPA Criteria API - 如何添加 JOIN 子句(尽可能一般的句子)

我正在尝试动态构造查询,我的下一个目标是添加JOIN子句(我不知道如何使用API)。例如,到现在为止,这段代码对我有用:...ClassbaseClass;...CriteriaBuildercb=JpaHandle.get().getCriteriaBuilder();CriteriaQuerycq=cb.createQuery(this.baseClass);Rootentity_=cq.from(this.baseClass);Predicaterestrictions=null;...restrictions=cb.conjunction();restrictions=cb.a