Tag: jpa

为什么JPA中的实体类不能是最终的?

为什么JPA中的实体类不能是最终的或者有最终方法? 引用这里 – 实体类必须遵循以下要求: … 不得将该类声明为final 。 没有方法或持久化实例变量必须声明为final 。 是什么原因? JPA是否对实体类进行了子类化并重新定义了方法?

JPA还是Hibernate for Java Persistence?

我正在研究Java,.NET和Groovy中的企业应用程序的开发。 对于每个平台,我们将尝试实现简单的SOAP Web服务是多么困难。 我们将使用最常用的工具和库,尽可能准确地研究现实世界。 在这方面,当使用Hibernate进行持久化时,它会更好地反映真实世界使用新的JPA(Java Persistence API),还是JPA出现之前存在的Hibernate自定义API?

JPA / Hibernate“Composite-id类不会覆盖equals()”

我正在使用JPA并收到以下警告。 我研究了这个,并理解为什么我需要覆盖它以及Hibernate如何使用这些方法。 我仍然有一个问题: 例外: Composite-id类不会覆盖equals() 题: 为什么Hibernate只关心没有复合ID的类? 默认情况下,如果只有一个存在,在@Id字段上进行比较,或者是否存在更复杂的问题?

JPA合并导致外国实体的重复输入

问题: 有没有人知道如何合并而不让EntityManager尝试重新插入外国实体? 场景: 只是为了设置一个与我的案例非常匹配的场景:我有两个实体 @Entity @Table(name = “login”, catalog = “friends”, uniqueConstraints = @UniqueConstraint(columnNames = “username”)) public class Login implements java.io.Serializable{ private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = IDENTITY) @Column(name = “id”, unique = true, nullable = false) private Integer id; @Column(name = “username”, unique = true, nullable = false, length = […]

JPA – Java Spring Boot – 查找/连接表

我是Java Spring Boot和JPA的新手。 我有两个表 – 一个是帐户表,网站将管理“TblLogin” – 另一个“TblPatient”将由网站上的第三方数据(非托管)填充。 //查找方法 所以在这个演示中 – 我有一个用户登录 – 电子邮件,密码 – 我需要先做一个不仅满足“findByEmail”的查找 – 而且还要“findByEmailAndPassword”并在密码值到达之前加密密码值做一个检查。 在找到acc – it然后获取pin col数据 – 如1345 – 并查看第三方表。 – – 现在我确信有更复杂的方法 – 甚至可以通过加入? 但我不确定。 TblLogin acc = tblLoginRepository.findByEmail(email); String pin = acc.getPin(); TblPatient ext = tblPatientRepository.findByPatientID(pin); JSONObject response = new JSONObject(); response.put(“tblLogin”, acc.getEmail()); response.put(“tblPatient”, ext.getId()); 它会是什么样的东西 – […]

JBoss在连接超时时重新连接

当我的连接死亡时,我想重新连接。 我得到的问题,我在这里解释https://stackoverflow.com/questions/25504566/jta-transaction-in-other-thread-rolling-back 我还没有弄清楚它为什么会发生,但我现在已经无法发生死锁,所以我会等一个星期来看它是否已修复。 但我认为我的设置应该在失败连接时重新连接。 但相反,JTA问题导致了我的连接,而且它没有回来。 大概是因为它是CMT,只有一个连接,它通过@PersistenceContext传递,所以相同的EntityManager用于所有东西,所以要重新连接,它必须从EntityManagerFactory获得一个新的EntityManagerFactory ,但它不知道要做到这一点。 我不知道JBoss和JPA的内部结构。 这是我的设置: jdbc:sqlserver://srv.local:1433;databaseName=AS_DEV sqlserver2008 5 50 false false FailingConnectionOnly user 12345 com.microsoft.sqlserver.jdbc.SQLServerDriver 我还能做些什么,以确保在失败时恢复连接?

Hibernate / JPA注释 – 未知实体

几个月来一直运行良好的应用程序已经停止了几个月来已经成为其中一部分的JPA @Entity注释。 随着我的集成测试运行,我看到了几十个“ org.hibernate.MappingException: Unknown entity: com.whatever.OrderSystem ”类型错误。 我不清楚这里出了什么问题。 我没有hibernate.cfg.xml文件,因为我正在使用Hibernate实体管理器。 由于我只使用注释,因此我的实体没有.hbm.xml文件。 我的persistence.xml文件很小,并且按照预期存在于META-INF中。 我显然错过了一些东西,但不能把手指放在上面。 我正在使用hibernate-annotations 3.2.1,hibernate-entitymanager 3.2.1,persistence-api 1.0和hibernate 3.2.1。 hibernate-commons-annotations也是项目POM的一部分,但我不知道这是否相关。 是否有一个已消失的web.xml条目,或者一个意外删除的Spring配置条目?

IllegalArgumentException:为TypedQuery 指定的类型与查询返回类型不兼容

我在为Generic类型创建TypedQuery时遇到了这种间歇性错误。 我的方法是: public List findByEmail(Class type, String email_id){ String query = “SELECT t FROM ” + type.getSimpleName() + ” t WHERE t.email =:”+email_id; TypedQuery typedQuery =em.createQuery(query, type); return (List) typedQuery.getResultList(); } 如果我重新启动服务器,则错误不会重新出现并正确获取结果。 play.api.Application$$anon$1: Execution exception[[IllegalArgumentException: Type specified for TypedQuery [model.User] is incompatible with query return type [class model.User]]] at play.api.Application$class.handleError(Application.scala:296) ~[play_2.11-2.3.7.jar:2.3.7] at play.api.DefaultApplication.handleError(Application.scala:402) [play_2.11-2.3.7.jar:2.3.7] at […]

调用getNextException以查看原因:如何使Hibernate / JPA显示数据库服务器消息以查找exception

我正在使用Postgresql,Hibernate和JPA。 每当数据库中出现exception时,我都会得到类似这样的东西,因为它没有显示DB服务器上真正出错的地方。 Caused by: java.sql.BatchUpdateException: Batch entry 0 update foo set ALERT_FLAG=’3′ was aborted. Call getNextException to see the cause. at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2621) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1837) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:407) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2754) at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723) at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268) … 82 more 我希望数据库中的exception消息出现在应用程序的日志中。 我遇到过这篇文章 ,它使用一个Aspect来填充exception链,否则在SQLExceptions的情况下,该exception链没有正确填充。 有没有办法解决这个问题,而无需使用Aspects或任何自定义代码。 理想的解决方案只涉及配置文件更改。

Play Framework:为Spring RabbitMQ监听器手动打开JPA上下文

我正在使用Spring-AMQP来监视Play应用程序中的RabbitMQ消息队列。 问题是我无法从侦听器代码访问我的数据库,因为JPA上下文未在此范围内打开。 我理解Play Framework管理JPA上下文,以便在处理HTTP请求时打开它,但有没有办法可以从外部Play控制器/作业中使用JPA?