草庐IT

postgresql-performance

全部标签

java - JPA 中的 PostgreSQL 函数 string_agg

在PostgreSQL中,string_agg(column,separator)允许聚合一些字符串。我尝试将它与JPA一起使用,但它不是JPA标准函数。注意:这不等同于CriteriaBuilder#concat()。所以,我试图告诉JPA这个函数存在,就像这样:publicclassStringAggextendsParameterizedFunctionExpressionimplementsSerializable{publicstaticfinalStringNAME="string_agg";@OverridepublicbooleanisAggregation(){ret

java - 通过JDBC向PostgreSQL表中插入 "daterange"字段值

我在PostgreSQL(9.3)中有一张表daterange字段类型。我可以像使用JDBC的字符串一样选择这个字段,但我不能将它插入到表中。我尝试过的:PreparedStatementstm=conn.prepareStatement("insertintomytable(my_daterange_field)values(?)");stm.setString(1,"[2014-01-02,2014-01-04]");inti=stm.executeUpdate();我得到了:Exceptioninthread"main"org.postgresql.util.PSQLExcept

java - 从postgresql中批量插入的行中检索序列号

这是有效的代码:Connectionc=ds.getConnection();c.setAutoCommit(false);PreparedStatementstmt=c.prepareStatement("INSERTINTOitems(name,description)VALUES(?,?)");while(!(items=bus.take()).isEmpty()){for(Itemitem:items){stmt.setString(1,item.name);stmt.setString(2,item.description);stmt.addBatch();}stmt.exe

Java JPA : Performant check if Entity is already in DB

使用JPA检查实体是否已在数据库中的最佳方法/最佳实践是什么?我正在编写一个将主机信息添加到数据库的客户端。例如附加的存储lun、hba等...如果我想为主机添加一个Lun,我必须检查该lun是否已经在数据库中。(Lun可以附加到另一个主机上)。我看到了2种可能性:我选择了Lun,检查它是否已经在数据库中尝试插入Lun并检查异常(唯一约束)有人有这方面的经验吗?BR,雷内 最佳答案 entityManager.find(SomeEntity.class,id)Returns:thefoundentityinstanceornulli

google-app-engine - App Engine 批量加载程序下载警告 "No descending index on __key__, performing serial download"

我正在使用以下内容下载我的一种的所有实例:appcfg.pydownload_data--config_file=bulkloader.yaml--kind=ModelName--filename=ModelName.csv--url=http://appid.appspot.com/remote_api如果种类的实例数多于批量大小,那么我会收到此警告:Nodescendingindexon__key__,performingserialdownload我没有任何自定义索引,也没有任何禁用索引的属性。我“需要”做些什么来解决这个警告,还是它只是一个我可以放心忽略的警告?会影响下载速度吗

java - 与 postgreSQL 数据库连接的非法 UTF-8 序列

我有以下代码连接到数据库Stringhost="jdbc:postgresql://localhost:5432/name";Stringusername="user";Stringpassword="pass";Connectionc=null;try{Class.forName("org.postgresql.Driver");c=DriverManager.getConnection(host,username,password);}catch(Exceptione){e.printStackTrace();System.err.println(e.getClass().getN

java - 有没有办法用 Hibernate/JPQL 查询 PostgreSQL hstore?

假设我有一个如下所示的Hibernate/JPA实体:@EntitypublicclassFooEntity{...@Type(type="hstore")HashMaptags;}...和hstore类型是来自this的简单UserType实现资源。有没有一种方法可以在类似于此伪代码的JPQL查询中访问hstore:SELECTfFROMFooEntityfWHEREf.tagsCONTAINSKEY(:key) 最佳答案 您也可以简单地创建一个Hibernateorg.hibernate.usertype.UserType。你扩

java - postgresql - java - 当数据库中发生某些事情时唤醒应用程序

我编写了一个Java应用程序,它应该在数据库中发生“某事”时启动或唤醒。例如,插入用户表应该触发发送通常的欢迎、密码……邮件。执行此操作的最佳常见做法是什么?我可以编写我的应用程序,使其每秒执行以下查询:selectmailfromuserwheremail_sent=false但这是轮询,我想避免它。有没有办法启动或唤醒由数据库更改启动的Java应用程序(推送)?干杯! 最佳答案 PostgreSQL中的触发器可以用多种语言编写,其中包括PL/Java。您可以在需要此监视相关操作(插入、删除、更新...)的表上设置触发器,并让触发

java - 使用 PostgreSQL,为什么 Hibernate/JPA 不创建级联约束?

我有一个实体Bar:@OneToMany(cascade=CascadeType.ALL,mappedBy="bar")privateSetfooSet;还有一个实体Foo:@ManyToOne(optional=false)@JoinColumn(name="bar_id")privateBarbar;Hibernate在foo.bar->bar.id上创建外键约束,但它没有指定ONDELETECASCADE。为什么不?有什么方法可以实现吗?或者,我可以在数据库中手动添加ONDELETECASCADE(并禁用DDL生成),这是一个好的做法吗?而且,我是否必须修改我的代码以某种方式让H

java - 将 PostgreSQL bytea-stored serialized-java-UUID 转换为 postgresql-UUID

我们的一个软件项目使用了一个PostgreSQL表,其中包含bytea类型的“guid”列。这与hibernate3.3.2.GA和PostgreSQL8.4一起使用,它使用javaobjectserialization序列化javaUUID类型.结果是类似于以下escape格式bytea文字的值:'\254\355\000\005sr\000\016java.util.UUID\274\231\003\367\230m\205/\002\000\002‌​J\000\014leastSigBitsJ\000\013mostSigBitsxp\273\222)\360*r\322\26