一个实体(比方说一个UserEntity)对其属性有严格的规则,它可以存在于2种状态-持久化(这意味着它有一个id)和预持久化(这意味着它还没有id)。根据thisquestionabouthowtohandlerequiredproperties的回答,一个“真正的”UserEntity应该只用传递给它的构造函数的id创建。但是,当我需要根据浏览器发送的信息创建一个新的UserEntity时,我需要能够在保存到数据库之前验证信息。在过去,我会简单地创建一个空白的UserEntity(没有id),设置新属性,然后验证它-但是,在这种新的、更安全的实体思考方式中,我不应该创建一个没有id
我有一个Scala应用程序,它一次维护(或尝试)到各种服务器的TCP连接数小时(可能>24)。每个服务器大约每秒发送两次约30个字符的短消息。这些消息被送入一个迭代器,在那里它们被解析并最终对数据库进行状态更改。如果这些连接中的任何一个因任何原因失败,我的应用程序需要不断尝试重新连接,直到我另行指定。任何消息丢失都是不好的。我无法控制我连接的服务器或使用的协议(protocol)。可以想象一次会有多达300个这样的连接。不完全是高负载场景,所以我认为不需要NIO,尽管拥有它可能会很好?应用的其他部分是高负载的。我正在寻找某种可以尽可能可靠地保持这些连接的套接字Controller/
我们正在做一个计划使用JPAPersistence的项目。我们认为,一旦项目上线,可能需要更改数据模型的可能性很小。我的问题是有哪些不同的策略可用于处理这种变化。特别是我有以下问题:对于更新的JPA类,将它们合并到现有数据库架构中的最佳实践是什么?对于JPA,是否有任何最佳实践来归档旧数据、更新数据库架构,然后再次将数据库迁移到新架构?有哪些变化(从广义上讲)会使这种迁移变得不可能? 最佳答案 在RHQ(http://rhq-project.org/)中,我们有一些dbutils,它们具有XML模式描述,用于填充空数据库上的初始模式
在我当前的项目中,我使用的是没有JPA注释的第3方库。如何使用JPA和外部映射从该库中保留对象? 最佳答案 检查this和this.简而言之:创建META-INF/orm.xml关注(阅读).xsd您不必手动映射每一列-只需要一些细节(即集合和ID)。所有字段都假定为列(如果类已映射)。如果没有集合,像这样的东西就足够了:ExternalentitiesfromlibraryXcom.external.library....注意在指定时您不需要完全限定的名称。如果您想要一个与orm.xml不同的文件名,在你的persistence.
我已经尝试在horntQ中使用PersistentQueue。我做了两个单独的例子(生产者,消费者)。我的消费者运行良好,但生产者花费太多时间来完成发送消息。我分别跑过和一起跑过。可能是什么问题呢?我的代码是:publicclassHornetProducerimplementsRunnable{Contextic=null;ConnectionFactorycf=null;Connectionconnection=null;Queuequeue=null;Sessionsession=null;MessageProducerpublisher=null;TextMessagemess
与任何内存管理问题一样,这是一个很长的故事,所以请牢牢捕获。我们的应用程序遇到了一些内存管理问题,因此,我一直在尝试对该应用程序进行概要分析,以了解问题出在哪里。我今天早些时候看到了这个线程:TomcatSessionEvictiontoAvoidOutOfMemoryError……似乎跟我在探查器中看到的一样。基本上,如果我用Jmeter吸引了一群用户使用该应用程序,它将长时间保留在堆内存上,最终直到session开始过期为止。但是,与该线程中的发布者不同,我拥有源代码,并且可以尝试使用Tomcat来实现持久状态session,这是我今天一直在尝试的工作,但取得的成功有限。我认为这是
我在尝试使用SpringsCrudRepository接口(interface)将实体持久保存到PostgreSQL数据库时遇到问题。我在TomEE上使用正确的值设置它和调整Spring本身的配置时遇到了很多问题。我曾短暂地尝试过使用hibernate,但问题变得更糟,所以我切换回与TomEE捆绑在一起的OpenJpa。我对纯JavaEE有一点经验,正在创建这个应用程序来学习Spring,我的一个friend需要一个Spring应用程序来部署在基于TomEE的ApplicationServer上,因此这两个是必需的。我附加的代码量可能有点过头了,但我宁愿让您看看那里有什么,这样您就可以
我需要保留类型为Map>的成员,使用JPA2注释。关系是多对多的,Item对象是实体。我是否应该创建一个单独的中介实体持有Set还是可以直接映射?如果缺少某些上下文,请告知。 最佳答案 ShouldIcreateaseparateintermediaryEntityholdingSetorisadirectmappingpossible?JPA不支持嵌套集合关系(ListofLists,MapofSets,等等)。这是关于Map的规范的相关部分:2.7MapCollectionsCollectionsofelementsandent
我想在我的实体中将一组选项表示为EnumSet,并在我的数据库中表示为一对多关系。这是如何正确完成的?我只能找到旧的(预注释)答案或不使用两个表的答案。我定义了以下表格:CREATETABLEUsers(idSERIALPRIMARYKEY,nameVARCHAR(255)NOTNULLUNIQUE);CREATETABLEUser_Options(user_idINT,user_optionVARCHAR(255),PRIMARYKEY(user_id,user_option),FOREIGNKEY(user_id)REFERENCESUsers(id)ONDELETECASCADE
例如如果我将计时器设置为每天午夜到期,如果一个“失火”(例如,由于服务器关闭而不会触发回调)会发生什么?我在文档中找不到它。有没有办法让这个定时器在服务器重启时立即触发回调?PS:我了解Quartz,我正在评估EJB计时器作为替代方案。 最佳答案 您可以使用TimerHandle使计时器持久化。EJB时间旨在避免容器崩溃。查看此article用于EJB时间与其他调度程序系统(如Quartz)之间的比较。 关于java-EJB计时器是否应该持久/可靠?,我们在StackOverflow上找