草庐IT

hibernate-validator

全部标签

java - 使用 Hibernate/Spring/JUnit 设置和拆除复杂的数据库状态

我有一个正在单元测试的类,它需要相当广泛的数据库设置才能运行各个测试方法。此设置需要很长时间:出于希望与手头问题无关的原因,我需要以编程方式而不是从SQL转储填充数据库。我遇到的问题是拆解。如何轻松回滚在数据库设置阶段所做的所有更改?我目前正在使用Hibernate+SpringTransactionalTesting支持,这样我的个人测试方法就包含在事务中。一个解决方案是在每个测试方法中进行数据库设置,这样数据库设置就会自动回滚。但是,测试方法将永远运行,因为每个方法都需要重新准备数据库。还有其他想法吗?基本上,我正在寻找一种方法来运行我的数据库设置,运行我的个人测试(每个测试都包含

java - 在 Hibernate 中重用查询

我在Hibernate中使用HQL查询,只是想知道我是否可以提高我的应用重用查询的性能。通常你必须为每个session创建一个新的查询对象:Sessionsession;Queryq1=session.createQuery("selectafromArticleawhereid=:id");q1.setInteger("id",123);Listresult=q1.list();现在我在HQL中有相对复杂的查询,我不想一遍又一遍地解析。有没有办法创建一个查询并在另一个session中重用它?像这样:Sessionsession;Queryq2=q1.reattach();q2.set

java - CXF 2.2.12 : How to turn off schema validation on the client side

我想关闭JAXB绑定(bind)消息的模式验证。我正在处理客户端CXF代码(第一代WSDL)。我试过使用没有成功(参见引用资料CXFFAQ)。我很难找到设置此属性的编程方式。我还探索了短路CXF和访问解析器、解码器等。感谢您的帮助。 最佳答案 要关闭架构验证,您应该将schema-validation-enabled属性设置为false。根据您引用的文档(CXFFAQ)。启用模式验证(所有请求和响应都将针对模式进行验证)设置要禁用模式验证(所有请求和响应都不会根据模式进行验证)什么都不做,因为它是默认行为或设置

java - Hibernate 模型的部分更新

如果只更新某些字段,更新模型的最佳做法是什么?例如。如果我有一个人物模型:名称出生日期地址还有一个我只想更新的表单:地址我目前能看到的两个选项是:要有一个只有地址的自定义表单模型-在回发时调用数据库来检索我的对象以填写姓名和出生日期,然后返回到数据库。自定义更新SQL以仅更新相关字段。如果可能的话,我更愿意使用hibernate模型,所以我目前使用的是#1。有没有更好的办法? 最佳答案 Hibernate如何构建SQL更新可以配置为仅更新更改的字段,使用anattributecalleddynamic-updateontheclas

java - Hibernate 和 java 8 lambda 的

自从引入Java8以来,Hibernate是否正在等待一些变化?特别地有什么方法可以在Hibernate中使用lambda编写查询吗?(即类似于.netLinq-to-SQL风格)如果没有,它什么时候来(如果它计划来)。例如像这样的东西:Useru1=dbo.Users.firstOrDefault(f->f.userId=10);Listusers=dbo.Users.selectMany(w->w.userId>5); 最佳答案 我也觉得做不到。但是我看到了Jinqhttp://www.jinq.org/他们为原始SQL查询执行

java - Bean 验证组序列不起作用

我正在为我的项目使用spring4.1、hibernatevalidator5.1.3。从过去2天开始,我一直在尝试让GroupSequence正常工作。我引用了验证文档、博客和stackoverflow上发布的一些问题。请看下面的类。当我从注释中删除GroupSequence和组时,所有验证消息都会一起出现,即所有对名称和其他字段的检查都会一起触发。让我们说对于名称字段——我希望首先验证@NotBlank和@Size,然后名称应该与模式匹配,最后应该检查@UniqueName因为数据库调用。为此,我按照文档和答案中的建议创建了GroupSequence。但是当触发验证时,只有@Not

java - 在 Hibernate 中遇到 org.hibernate.SessionException : Session is closed! 问题

我对此做了很多研究,但运气不佳,但所有答案都倾向于指向配置文件中的session上下文设置。奇怪的是,我第一次访问该页面时就获得了一个session连接(因此,一个成功的结果集),但是当我重新加载时,我得到以下异常:org.hibernate.SessionException:session已关闭!这是我的与数据库连接字符串无关的配置设置:falseorg.hibernate.dialect.SQLServerDialectthreadorg.hibernate.cache.NoCacheProviderfalsefalse这是我进行的调用的一个示例,它产生了我上面描述的情况。publ

java - 如何在 postgres - Hibernate 中设置锁定超时

我正在尝试设置Lock对于我正在处理的行,直到下一次提交:entityManager.createQuery("SELECTvaluefromTablewhereid=:id").setParameter("id","123").setLockMode(LockModeType.PESSIMISTIC_WRITE).setHint("javax.persistence.lock.timeout",10000).getSingleResult();我认为应该发生的是,如果两个线程同时尝试写入数据库,一个线程将先于另一个线程到达更新操作,第二个线程应该等待10秒然后抛出Pessimisti

java - Hibernate 删除级联

我有一个实体[Project],其中包含一组其他实体[Questions]。我已经用“all-delete-orphan”的级联属性映射了关系。在我的数据库中,关系映射到问题表上的project_id(FK)字段。此字段不能为空,因为我不想要没有项目的问题。当我执行session.delete(project)时,它抛出一个异常说明project_id不能为null,但是如果我删除not-null约束到该字段,删除效果很好。有人知道怎么解决吗? 最佳答案 直接来自documentation.我相信这完全解释了你的问题:但是,这段代码

java - JPA 2.0、hibernate 3.5、jars 和 persistence.xml 位置

我正在使用hibernate3.5和JPA2.0构建桌面应用程序。我有2个jar,定义每个实体和DAO的库,包如下所示:org.my.package.modelsorg.my.package.models.daoorg.my.package.models.utils在org.my.package.utils中,我定义了用于获取EM和EMF实例的hibernate实用程序类,这意味着该库已绑定(bind)到持久性单元名称,但目前这不是问题(无论如何你可以向我推荐一个更好的管理方式)第二个jar构建如下:org.my.package.appMETA-INF是在项目的根目录中定义的,这意味着