小编ste*_*mac的帖子

我是否必须关闭()每个EntityManager?

我刚刚开始将我自己开发的持久性框架迁移到JPA.

鉴于持久性框架隐藏了大量的管道,我有兴趣知道是否关闭EntityManagers会造成资源泄漏,或者框架是否会收集并关闭它们.

我打算在所有地方关闭它们,但我必须这样做吗?

目前使用TopLink,只是因为它可以轻松地与NetBeans协同工作,但我很乐意调查其他JPA提供商.

java persistence jpa toplink

65
推荐指数
3
解决办法
5万
查看次数

HHH000387 Hibernate警告意味着什么?

我刚刚更新到Hibernate 4.0并看到了警告消息:

HHH000387: ResultSet's statement was not registered

在我的日志文件中.这是什么意思,我应该担心吗?

hibernate hibernate-4.x

24
推荐指数
1
解决办法
1万
查看次数

为什么SQL Server 2008在长事务INSERT上阻止了SELECT?

我们正在尝试建立一个仅定期插入新记录的事务表.

这个简单的表要求我们不断添加新记录.此表中的事务量预计会非常高,并且可能会定期批量导入事务(> 1000),这可能需要几秒钟才能完成.

然后,我们从这些数据中执行一组select语句,将不同的列分组以返回所需的值.

从我们的初始测试中,我们发现了一个与SQL Server相关的瓶颈,它在INSERTS事务的中间阻塞了我们的SELECT.

下面是一个简单的示例,可用于说明问题.

- 简单的数据库表

create table LOCK_TEST (
LOCK_TEST_ID int identity ,
AMOUNT int);
Run Code Online (Sandbox Code Playgroud)

- 在1个查询窗口中运行此命令

begin tran
insert into LOCK_TEST (AMOUNT) values (1);
WAITFOR DELAY '00:00:15' ---- 15 Second Delay
insert into LOCK_TEST (AMOUNT) values (1);
commit
Run Code Online (Sandbox Code Playgroud)

- 在查询2中并行运行

select SUM(AMOUNT)
from LOCK_TEST;
Run Code Online (Sandbox Code Playgroud)

我希望查询2直接返回,0直到查询1完成,然后显示2.我们永远不希望看到从第二个查询返回1.

我们看到的答案与select语句中的WITH(NOLOCK)有关.但这违反了交易边界,返回的信息可能属于财务性质,我们不希望在查询中看到任何未提交的详细信息.

我的问题似乎是在INSERT方面...
为什么INSERT阻止SELECT语句,即使它没有修改任何现有数据?

奖励积分问题: 这是SQL Server的"功能",还是我们会在其他数据库版本上找到它?

更新 我现在有时间找到一个本地oracle数据库并运行相同的简单测试.这个测试通过我的预期.

即我可以根据需要经常运行查询,并且它将返回null,直到第一个事务提交,然后返回2.

有没有办法让SQL Server像这样工作?还是我们需要迁移到Oracle?

sql-server sql-server-2008

17
推荐指数
1
解决办法
1万
查看次数

如何将subversion本地副本重新附加到其他远程?

我们的subversion存储库已移至新主机,并且我们有连接到该主机的旧应用程序.我们无法为旧服务器添加旧名称的别名,我们如何将已检出的客户端重新连接到新的存储库?

svn

15
推荐指数
2
解决办法
6454
查看次数

pki与对称加密的性能差异是什么?

我们希望对我们的项目做一些严格的安全性要求,我们需要进行大量高性能的加密.

我认为我知道PKI比对称加密慢得多且复杂得多,但我找不到数字来支持我的感受.

encryption performance encryption-asymmetric encryption-symmetric

11
推荐指数
3
解决办法
2万
查看次数

如何给一个给出类名的枚举"valueOf"?

假设我有一个名为Animal的简单Enum定义为:

public enum Animal {
    CAT, DOG
}
Run Code Online (Sandbox Code Playgroud)

我有一个方法,如:

private static Object valueOf(String value, Class<?> classType) {
    if (classType == String.class) {
        return value;
    }

    if (classType == Integer.class) {
        return Integer.parseInt(value);
    }

    if (classType == Long.class) {
        return Long.parseLong(value);
    }

    if (classType == Boolean.class) {
        return Boolean.parseBoolean(value);
    }

    // Enum resolution here
Run Code Online (Sandbox Code Playgroud)

}

我可以在这个方法中放入什么来返回我的枚举实例,其中value是classType的?

我看过尝试:

    if (classType == Enum.class) {
        return Enum.valueOf((Class<Enum>)classType, value);
    }
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

java enums

6
推荐指数
1
解决办法
2171
查看次数

为什么不能在詹金斯的工作中磨合

我正在尝试在我们的Jenkins服务器上设置一个构建来运行hibernate-core项目的分支.

我已经能够让Jenkins做git clone从我的github fork获取本地存储库,但是当Jenkins尝试运行'gradlew'命令时它失败了.

直接从签出文件夹运行此脚本时,构建按预期运行,但是当通过Jenkins启动脚本时,它会失败.

作业配置为Freestyle配置,构建步骤设置为"执行shell"步骤.

构建步骤运行以下命令.

./gradlew clean test install buildReleaseBundles uploadArchives --debug --stacktrace

似乎gradlew脚本正在执行,但在gradle Download类中出现问题.

我的构建脚本输出以下内容:

Building on master
Checkout:workspace / /data/hudson/jobs/hibernate-envers-stevemac/workspace - hudson.remoting.LocalChannel@63e4f703
Using strategy: Default
Last Built Revision: Revision 7cdb4c829f28c5b029a3d43f50a54d4c89fc9665 (origin/Branch_4.0.0.Final)
Checkout:workspace / /data/hudson/jobs/hibernate-envers-stevemac/workspace - hudson.remoting.LocalChannel@63e4f703
Fetching changes from 1 remote Git repository
Fetching upstream changes from https://stevemac007@github.com/stevemac007/hibernate-core.git
Commencing build of Revision 7cdb4c829f28c5b029a3d43f50a54d4c89fc9665 (origin/Branch_4.0.0.Final)
Checking out Revision 7cdb4c829f28c5b029a3d43f50a54d4c89fc9665 (origin/Branch_4.0.0.Final)
[workspace] $ /bin/sh -xe /tmp/tomcat6-tmp/hudson9191971611159378903.sh
+ ./gradlew clean test install buildReleaseBundles uploadArchives --debug --stacktrace
Downloading http://repo.gradle.org/gradle/distributions/gradle-1.0-milestone-3-bin.zip

Exception …
Run Code Online (Sandbox Code Playgroud)

hibernate gradle jenkins

6
推荐指数
1
解决办法
5403
查看次数

使用注释的Hibernate Enum映射

我有一个现在的数据库,我现在正在使用hibernate连接.我现在无法更改其中的数据,并使所有内容与单个列分开.

我有一个具有以下值的状态列:

  • 邮寄

该列映射如下:

@Column(name = "STATUS", nullable = false, length = 50)
@Enumerated(EnumType.STRING)
private TeamMemberStatus status;
Run Code Online (Sandbox Code Playgroud)

我真的希望(出于应用程序的原因)将此列映射为Java Enum(TeamMemberStatus),但由于'new'是Java中的关键字,我不能将其作为枚举成员.

如果我有enum contstants NEW,MAILED,IN和OUT hibernate失败,因为在EnumType内部它会执行一个Enum.valueOf().

有没有办法让我把它映射到我的Enum而不必编写复杂的UserType?

- 添加内容

我的Enum是这样的:

public enum TeamMemberStatus {
    NEW, MAILED, IN, OUT 
}
Run Code Online (Sandbox Code Playgroud)

是一个有效的Java枚举,但不匹配数据库的情况.如果我改变它以匹配数据库,如:

public enum TeamMemberStatus {
    new, mailed, in, out
}
Run Code Online (Sandbox Code Playgroud)

它不会编译,因为'new'是Java保留字.

java enums annotations hibernate

5
推荐指数
1
解决办法
1585
查看次数

JAXB和多个对象关系

我们在过去几个月里使用Jersey(Java REST库)进行项目并喜欢它.但是本周JAXB遇到了一个问题.

我所拥有的是一个有两个孩子的元素,每个孩子都有孩子,他们的一些孩子互相参照.

让我展示一些代码.

Root root = new Root();

Parent parent1 = new Parent();
Parent parent2 = new Parent();

root.add(parent1);
root.add(parent2);

Child child1 = new Child();
Child child2 = new Child();
Child child3 = new Child();

parent1.add(child1);
parent1.add(child2);

parent2.add(child2);
parent2.add(child3);
Run Code Online (Sandbox Code Playgroud)

所以我们有1个根,2个父母和3个孩子.

如果我在JAXB路径上上下发送,我似乎找回了4个孩子.
每个Parent都有自己的child2副本.

反正有没有让JAXB序列化关系并显示parent1和parent2都指向同一个对象?

我们最近才发现这个问题,当时正在传输更复杂的元素.

如果没有办法让JAXB做到这一点(这就是我现在所相信的那样),有没有人有任何建议我可以在泽西岛做一些魔术以重新恢复关系?

java jaxb jersey

4
推荐指数
1
解决办法
4264
查看次数

java.lang.AbstractMethodError在Eclipse中使用jetty运行webapp.

我正在研究eclipse中的一个项目,当我使用jetty插件启动时给了我一个

java.lang.AbstractMethodError: 
au.com.mycopmpany.impl.MyClassDAOImpl.findById(Ljava/lang/Integer;)Ljava/lang/Object;.
Run Code Online (Sandbox Code Playgroud)

这个文件在Eclipse中编译得很好,代码正在实现错误所讨论的方法.从我的阅读中,这个错误表明"在运行时"JVM发现一个没有实现此方法的类.

但我可以向你保证,MyClassDAOImpl最确定的findById方法是使用正确的签名实现该方法.

这似乎是Eclipse编译器中的一个错误; 我可以通过maven package从命令提示符运行然后在Eclipse中运行应用程序正常工作来解决问题.

似乎Eclipse编译器在此类中存在某种错误.我在网上读过一些关于Eclipse编译器中泛型错误的东西(这个类确实使用了Generics)但是这个基类/接口在我们的代码库中反复重复实现,这个类总是有问题.

有没有人知道解决方法,或者更好的是,解决这个问题?

我每次都可以复制此异常,因此如果Eclipse编译器开发人员阅读此内容并且这是一个已知问题,请随时与我联系以获取有关跟踪问题的帮助.

更新:

有问题的类是许多实现GenericDAOGeneric接口定义为的地方之一:

public interface GenericDAO<T, TList> 
Run Code Online (Sandbox Code Playgroud)

有问题的方法是失败的:

public T findById(Integer integer) throws APIException;   
Run Code Online (Sandbox Code Playgroud)

java eclipse jetty

2
推荐指数
1
解决办法
1万
查看次数