我有一个包含一个'有效直到'日期的列的表,我想确保只能在表中的一行中将其设置为null.是否有捷径可寻?
我的表看起来像这样(postgres):
CREATE TABLE 123.myTable(
some_id integer NOT NULL,
valid_from timestamp without time zone NOT NULL DEFAULT now(),
valid_until timestamp without time zone,
someString character varying)
Run Code Online (Sandbox Code Playgroud)
some_id而且valid_from是我的PK.我希望没有人在列valid_until中输入一个空值的行,如果此PK已经有一行为null.
谢谢
如果我调用,连接仅返回到JPA应用程序中的连接池
entityManager.close();
Run Code Online (Sandbox Code Playgroud)
?
支持实体经理的连接在其生命周期中是否会发生变化?
感谢提前mojoo
java database-connection jpa connection-pooling entitymanager
我有一个java jpa/hibernate应用程序需要获取大量数据来执行其任务.我遇到了n + 1问题,所以我决定使用hibernate.default_batch_fetch_size(@batchsize)属性来降低所需的sql往返.我尝试了一些值但性能随着几乎所有尝试过的值而崩溃.
batchsize:0 - sqls发送:14000 - 持续时间:约1分钟
batchsize:4 - sqls发送:5000 - 持续时间:超过10分钟
batchsize:10 - sqls发送:2700 - 持续时间:约5分钟
batchsize:100 - sqls发送:400 - 持续时间:约1分钟
这是一种"正常"行为吗?如果不是什么可能是错误?
我用log4jdbc记录了生成的sql.我注意到每个批次声明之间的差距大约为100-150毫秒.如果我稍后运行sql,则每个语句的运行时间不超过20毫秒.所以这不是一个与DB(IN语句)相关的问题.
Java:1.6.0_31,Hibernate 3.6.7,DB Postgres 9.1.1,JDBC postgresql-9.1-901.jdbc4.jar
提前致谢
更新以使事情清楚:性能损失是在批量提取期间而不是批量更新/插入
java ×2
jpa ×2
constraints ×1
hibernate ×1
null ×1
performance ×1
postgresql ×1
range ×1
sql ×1