草庐IT

Spring-Hibernate

全部标签

java - Spring @Async 和同步

我有一个基于Spring的异步方法(用@Async注释)我想在错误事件发生一定次数的情况下暂停。由于可能有多个线程在做同样的事情,我尝试了一个静态的AtomicInteger(MY_COUNT)这样所有的线程都可以知道计数,并且利用AtomicInteger提供的内置并发。在我的单元测试中(在Eclipse中使用SpringJUnit4ClassRunner运行),一切正常,直到线程命中MY_COUNT.incrementAndGet()。然后线程就消失了。没有异常(exception),没有。异步工作线程就消失了。我尝试取出AtomicInteger并仅使用synchronized方

java - 使用带有 hdbc 的 spring security 3.0 逐步登录示例

我是Spring和SpringSecurity的新手。我只需要一个指向正确方向的指针:我有一个简单的SpringMVC/SpringSecuritywebapp。我想将登录功能添加到网络应用程序中。我创建了以下两个表。CREATETABLE"users"("USER_ID"NUMBER(10)NOTNULL,"USERNAME"VARCHAR(45)NOTNULL,"PASSWORD"VARCHAR(45)NOTNULL,"ENABLED"NUMBER(1)NOTNULL,PRIMARYKEY("USER_ID"))CREATETABLE"user_roles"("USER_ROLE_

java - 在运行时动态添加 spring 上下文配置?

在spring/junit中,你可以使用@ContextConfiguration加载应用程序上下文文件,例如@ContextConfiguration({"classpath:a.xml","classpath:b.xml"})我有一个要求,如果我在测试类上看到特殊注释,然后动态添加另一个XML上下文文件。例如:@ContextConfiguration({"classpath:a.xml","classpath:b.xml"})@MySpecialAnnotationclassMyTest{...}在上面的示例中,我将查找@MySpecialAnnotation并添加special

java - 开发环境中的spring延迟初始化

为了减少开发环境中的服务器启动时间,我想更改Spring的默认行为以延迟初始化bean。我知道这可以通过在bean级别指定default-lazy-init="true"来完成。但是,我不想每次从SCM获取最新配置文件并在重新checkin之前将其更改回来时都更改此属性。是否有任何其他方法可以外部化此属性?比如指定系统属性?我还尝试在特定于环境的属性文件中定义一个属性,并在beans元素中引用该属性,但没有成功。default-lazy-init="${default-lazy-init-value}"还有其他方法可以轻松实现吗? 最佳答案

java - 组织.hibernate.HibernateException : collection is not associated with any session

我的一个friend在开源软件OscarMcmaster中遇到了一个特殊问题。他让我帮忙,我能够找到导致问题的代码。下面是一个方法:publicBillingServicegetBillingCodeByCode(Stringcode){Listlist=billingServiceDao.findBillingCodesByCode(code,"BC");if(list==null||list.size()==0){returnnull;}return(BillingService)list.get(0);}billingServiceDao由Spring容器初始化:privates

java - 使用 Hibernate 请求和分页多个不相关的实体类型

我有一个奇怪的业务需求。我们有多个不相关的实体类型,它们需要显示在一个统一的列表中,其中包含来自实体的一些基本信息,并按保证它们都具有的唯一字段DATE进行排序。这些实体可能在也可能不在同一个数据库中。结果集需要可分页。是否有通过Criteria、HQL或一些理智手段实现这一目标的可行方法? 最佳答案 通常您会让所有这些类扩展公共(public)基类并使用多态Hibernate查询。从你的描述来看,这似乎不可行。当然,如果你想采用Hibernate方式,你必须首先获取每个不相关表的大小,确定请求页面中的记录位于哪个表中(或者可能在多

java - Spring 参数化/理论 JUnit 测试

我希望结合SpringProfilesandConfigurations的灵active与并行运行的JUnit测试一起使用Parameterized或Theories注解。有什么方法可以合并所有这些功能来运行我的单元测试吗?我一直遇到的问题是参数需要访问注入(inject)的bean,这是不可能的,因为用@Parameters或@DataPoints注释的函数应该是静态的。我真的很讨厌必须将它连接到每个类甚至某处的静态函数中,因为我希望能够快速切换配置文件而不必更改Java代码。这可能吗? 最佳答案 找到ticket对于这个请求。附

java - 我如何使用 .properties 文件或数据库中的正则表达式指定 Hibernate "@Pattern"注释

情况:我想根据用户属性执行Hibernate验证(以允许根据用户帐户数据对输入使用不同的验证规则)-我认为必须可以使用.properties文件来指定一个特定的正则表达式,但我不知道出了什么问题:我当前指定验证正则表达式的方法是从特定接口(interface)文件中的常量中提取该正则表达式(以将所有内容放在一起)并将其作为常量插入@Pattern()注释中每个变量-例如对于变量workPhone:@Column(name="WORK_PHONE")@NotEmpty(message="{ContactInfo.workPhone.notEmpty}")@Pattern(regexp=P

java - 通过 Spring + Hibernate 只读数据

注意到如果我想读取一些数据并且如果我没有事务上下文我将无法这样做因为org.hibernate.HibernateException:NoSessionfoundforcurrentthread对于读取数据,通常不需要事务。因此,为了让Spring管理session,即使对于只读操作(如选择...),它也需要有一个事务?这不是开销吗?PS.我不想手动打开和关闭session...非常感谢。 最佳答案 @Transactional除了指示spring启动和提交事务外,还告诉spring打开和关闭session。这不是很简单,但这就是它

java - 是否可以在 hibernate 状态下将表视为只读?

我有一些我没有理由从应用程序中更新的表,所以我想防止它发生,即使是由于其他地方的错误而意外发生。我看到了@Immutable注释,但它看起来仍然允许插入和删除。我想完全按照石头写的那样对待整个表(而不仅仅是每个实体)。有没有一种简单的方法可以做到这一点?还是我误解了关于@Immutable的文档?如果需要示例,假设有一个包含MONTH表、一个Month实体和一个APPOINTMENT表的表与Appointment实体关联。我永远不想在月份中删除或插入一行。 最佳答案 您是否尝试过只读缓存策略:Ifyourapplicationnee