草庐IT

mysql - 用 JPA/Hibernate 覆盖连接继承外键名称

我有一个继承自媒体类的类CD:光盘:@EntitypublicclassCDextendsMedia{...}媒体:@Entity(name="media")@Inheritance(strategy=InheritanceType.JOINED)publicabstractclassMediaextendsPersistenceId{...}JPA自动生成一个外键名称,我想用我想要的名称覆盖它:03-1018:16:58.174[main]DEBUGorg.hibernate.SQL-altertablecdaddconstraintFK_ehd468g2cptgh6bq6sxe75

java - Mysql maven jpa框架

是否有使用mysql的项目的框架,一些以RESOURCE_LOCAL作为连接类型的eclipse/top链接?最好使用maven。我正在搜索它几个小时,但即使是最简单的例子也无法运行。因此,如果您已准备好并运行它,请发布:-)。即使像这两个类这样简单的东西。@EntitypublicclassMessageimplementsSerializable{publicMessage(){}publicMessage(Strings){this.s=s;}@IdStrings;publicStringgetS(){returns;}}publicclassApp{staticprivateE

java - 根据数据库中的可用性插入/更新行

这是一个常见的场景,但我想找出哪种方式是性能优化方式和最佳实践。我有一个包含4列的表:id、name和其他两个字段。Id是PK,name是唯一键。我正在从excel文件中读取数据,填充域对象中每一行的值,然后保存它。保存时,我想看看是否已经存在同名记录,如果存在,我想更新它。否则将其另存为新记录。我可以使用正常的名称选择查询并检查是否为空,并基于该插入或更新来完成此操作,但我有数千行要从excel文件中读取,并且请求的非功能性要求是性能。所以请告诉我处理这个senario的最佳方法是什么?我还没有开始编写我的持久层部分,所以我可以根据您的建议切换到ORM或纯jdbc。编辑:如果我使用名

java - 使用 Eclipse Link 在 JPA 中映射 Joda Time "Period"的注释

我的Item实体中有一个字段-expiryLimit我想为其使用joda-timePeriod这将是一个适合在这里使用的类型。只是为了解释-expiryLimit是年、月、天或之后的任何持续时间一个特定的item将过期,使用它我可以计算一个Item给定deliveryDate的确切expiryDate。现在我面临的问题是找到一种适当的方法将此类型映射到JPA。是否有任何可用的API或第3方库提供一些注释来做到这一点?我还使用EclipseLink@Converter注释将DateTime与MySQLTimeStamp。那么,我是否也需要对Period做同样的事情。如果是,那么我应该将其

mysql - 如何在 Hibernate 中为每个公司创建一个 customerNumber 生成器

我有一张客户表,每个客户都属于一家公司,公司希望他们的客户编号从0开始,并随着他们添加客户而递增,当公司B添加客户时,公司A的客户编号不应受到影响。CustomerId内部可以是任何数字,customerNumber必须在companyId的上下文中无间隙递增(无间隙我的意思是0,1,2,3,4,如果2被删除,它就消失了,下一个插入应该是5而不是2)Example:companyIdcustomerNumbercustomerId000011022033044055106117128我想知道是否有比打开交易、找到最大customerNumber、使用max+1作为customerNum

mysql - spring + hibernate 集成表 "table_name "丢失

我将spring与hibernate集成在一起,我正在使用dropwizard配置文件作为:持久性文件,配置文件位于资源文件夹中,加载xml文件没有问题。找到的表有问题。persistence.xml文件为:org.hibernate.ejb.HibernatePersistencecom.bcits.parkingmanagement.model.Usertrue在spring应用程序配置xml中,我只显示hibernate配置TableUsermissingjavax.persistence.PersistenceException:[PersistenceUnit:bfm]Una

mysql - Atomikos:事务包含多个持久化时的异常

我正在试验Atomikos提供的独立JPA和JTA/XA事务管理。我的简单单元测试保留了3条记录,包装在JTAUserTransaction中。当使用H2作为后备数据库时,测试工作正常。当使用MySQL作为后备数据库时,secondpersist抛出这个异常:com.mysql.jdbc.jdbc2.optional.MysqlXAException:XAER_INVAL:Invalidarguments(orunsupportedcommand)(请参阅下面的完整堆栈跟踪和日志记录)。日志文件提供了更多详细信息:WARNING:XAresource'jdbc/mysqlDs':res

Spring Boot : ORM 框架 JPA 与连接池 Hikari

数据库方面我们选用Mysql,SpringBoot提供了直接使用JDBC的方式连接数据库,毕竟使用JDBC并不是很方便,需要我们自己写更多的代码才能使用,一般而言在SpringBoot中我们常用的ORM框架有JPA和Mybaties,本篇文章我们要介绍的就是JPA的使用姿势。说道使用ORM框架,就不得不顺便聊一下连接池,市面上很多成熟的数据库连接池,如C3P0、Tomcat连接池、BoneCP等等很多产品,但是我们为什么要介绍Hikari?这个要从BoneCP说起。因为,传说中BoneCP在快速这个特点上做到了极致,官方数据是C3P0等的25倍左右。不相信?其实我也不怎么信。可是,有图有真相啊

java - 在JPA中检查数据库

如何在JPA中检查数据库是否已连接,当部署应用程序后数据库连接打开或关闭时,即(运行应用程序时) 最佳答案 最简单的方法是执行一个查询,比如em.createNativeQuery("select1fromdual").getSingleResult();通常,数据源/连接池或JPA提供程序会提供某种连接测试或死连接解决方​​案。如果您正在使用EclipseLink的连接池,它将自动检测死连接并重试查询。 关于java-在JPA中检查数据库,我们在StackOverflow上找到一个类似

java - EclipseLink 批量插入非常非常慢

我正在尝试使用EclipseLink优化我的JPA实现。我已经添加了批处理操作。但它仍然需要大量时间来进行50000次插入。使用带JDBC的原始SQL执行完全相同的插入所花费的时间是其10倍以上。为了确保批处理操作确实有效,我使用Wireshark检查我的数据包,它没有使用批处理插入。这是插入数据包之一:它没有做:INSERTINTOENTITYCLASSTEST(LASTNAME,NAME)VALUES('sfirosijfhgdoi0','dsufius0'),('sfirosijfhgdoi0','dsufius0'),('sfirosijfhgdoi0','dsufius0')