Jakarta ee JavaEEEJB不断尝试从一个请求向数据库添加新条目

Jakarta ee JavaEEEJB不断尝试从一个请求向数据库添加新条目,jakarta-ee,ejb,Jakarta Ee,Ejb,我对JavaEE还是相当缺乏经验。我正在尝试创建一个原型,在一周内我已经学到了尽可能多的东西,但是现在我真的被卡住了 我通过POST从android应用程序发送一个json对象,然后将内容添加到数据库中。请求通过我的servlet传入,servlet提取数据,然后创建一个新实体并用数据填充它。然后,我将实体发送到一个消息驱动bean,该bean调用一个save函数: 公共void保存对象对象{ em.持久对象; em.flush; } servlet通过jms/Queue发送实体 问题:在部署应

我对JavaEE还是相当缺乏经验。我正在尝试创建一个原型,在一周内我已经学到了尽可能多的东西,但是现在我真的被卡住了

我通过POST从android应用程序发送一个json对象,然后将内容添加到数据库中。请求通过我的servlet传入,servlet提取数据,然后创建一个新实体并用数据填充它。然后,我将实体发送到一个消息驱动bean,该bean调用一个save函数: 公共void保存对象对象{ em.持久对象; em.flush; } servlet通过jms/Queue发送实体

问题:在部署应用程序并从应用程序发送请求后,它会尝试将信息插入到我的数据库中,但随后它似乎一直在尝试这样做,并用以下内容填充我的控制台:

WARNING: Local Exception Stack
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461):    org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '2012/03/14-AAAA' for key 'PRIMARY'
Error Code: 1062
我的想法是,消息可能没有被正确地从队列中删除,或者可能是它决定继续发送消息的某个地方。我认为情况并非如此,但我不完全确定EntityManager是如何工作的。我真的不确定除了所有代码之外还应该包含哪些代码

任何帮助都会很好,我真的很拮据

谢谢, 丹


编辑:使用MySQL数据库和Glassfish服务器。

您可以添加如何创建实体,是否在EJB bean中的某个事务方法中。您可以添加如何创建实体,是否在EJB bean中的某个事务方法中。