小编Dmi*_*ich的帖子

LazyInitializationException尝试获取懒惰的初始化实例

当我尝试获取懒惰的初始化实体时,我在IDE中看到以下异常消息(我无法找到它在代理实体中的存储位置,因此无法为该异常提供整个堆栈跟踪):

Method threw 'org.hibernate.LazyInitializationException' exception. Cannot evaluate com.epam.spring.core.domain.UserAccount_$$_jvste6b_4.toString()
Run Code Online (Sandbox Code Playgroud)

这是我尝试访问要使用的惰性初始化实体的字段后得到的堆栈跟踪:

org.hibernate.LazyInitializationException: could not initialize proxy - no Session

    at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:165)

    at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:286)

    at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:185)

    at com.epam.spring.core.domain.UserAccount_$$_jvstfc9_4.getMoney(UserAccount_$$_jvstfc9_4.java)

    at com.epam.spring.core.web.rest.controller.BookingController.refill(BookingController.java:128) 
Run Code Online (Sandbox Code Playgroud)

我正在使用Spring Data,已配置JpaTransactionManager,数据库是MySql,ORM提供程序是Hibernate4。注释@EnableTransactionManagement处于启用状态,@ Transactional随处可见,但无济于事。

这是一个关系:

@Entity
public class User extends DomainObject implements Serializable {

    ..

    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @JoinColumn(name = "user_fk")
    private UserAccount userAccount;

    ..

@Entity
public class UserAccount extends DomainObject {

    ..

    @OneToOne(mappedBy = "userAccount")
    private User user;

    ..
Run Code Online (Sandbox Code Playgroud)

..一个配置:

    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource(); …
Run Code Online (Sandbox Code Playgroud)

mysql hibernate lazy-loading spring-transactions spring-data

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

使用Spock的Unroll进行所有可能的参数排列

我对同一个测试有以下参数:

  a  |  b  |  c
  1  |  2  |  3
 11  | 22  | 33
Run Code Online (Sandbox Code Playgroud)

Spock为@Unroll类似于此的测试提供了注释(使用这组参数,您可以使用向量[1,2,3]和[11,22,33]运行相同的测试).

但是,我需要为所有可能的排列运行相同的测试(例如[1,2,3],[1,2,33],[11,2,33]等,所有8种组合).我怎样才能实现它?

谢谢你的任何想法!

groovy integration-testing end-to-end spock

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

将IntStream.iterate限制为特定值

我说,我正在生成以下范围:

IntStream.iterate(1, i -> 3*i)
Run Code Online (Sandbox Code Playgroud)

如何将流限制为特定元素值,例如100(不是元素计数带限制())?

谢谢!

UPDATE函数可以是任意的

java java-8 java-stream

4
推荐指数
3
解决办法
260
查看次数

Java 8 ifPresent vs三元运算符

你觉得什么更好(当然有论据):

Optional.ofNullable( userName )
      .ifPresent( nonNullUserName  -> header.setUser( createUser( nonNullUserName ) ) );
Run Code Online (Sandbox Code Playgroud)

要么

header.setUser( userName == null ? createUser( userName ) : null );
Run Code Online (Sandbox Code Playgroud)

该方法createUser创建了xml元素,整个代码安静的意图是根据它的存在将其设置在SOAP请求中userName.

我看到的第一种方法的好处是没有无用的操作,代码做了一件事而不是更多.但是第二种方法可以让你再保存一行代码,从而看起来更简洁.

更新:我想我错过了一个我实际暗示的事情,它引起了一些误解.如果你有一些解释,最好提供更清晰的例子.

java ternary-operator optional java-8

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

空手道对Spock

我最近发现了用于测试Web服务的Karate框架.但也有Spock框架提供类似(在我看来)的功能.框架之间有什么区别?我想建议我们的测试人员看看它.

testing integration-testing end-to-end spock karate

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

地图时如何跳过null?JSX

我是ReactJs/Redux和JSX的新手.我有一个动态信息表,里面有动态信息.

我有地图问题.我有2级地图:

<tbody>
  {
    data.map(row => (
      <tr key={`${row.type}`}>
        <td>
          <h5>{row.type}</h5>
        </td>
        <td>
          {
            row.text.map((name, indexText) => (
               <span key={row.text[indexText]} className="margin-right-10">
                 <Link
                   key={name}
                   role="button"
                   onClick={ () => this.getData(
                   this.state.le_id,
                   row.text[indexText][1],
                   row.type,
                   this.state.year,
                  )}>
                   {row.text[indexText][0]}
                 </Link>
               </span >
            ))
          }
        </td>
          <td>
              <Link className="btn btn-info btn-sm"
                    to={`/company/insurances/all-providers/${row.type}/${this.state.le_id}`}
              >
              {locales('create')}
              </Link>
          </td>
       </tr>
    ))
  }
</tbody>
Run Code Online (Sandbox Code Playgroud)

以下是它的实际效果:图像在这里

当我在过滤器中选择数组中某处为null的其他条件时,它会停止并显示错误:

list.js?6d8a:153 Uncaught (in promise) TypeError: Cannot read property 'map' of null
    at eval (eval at <anonymous> (http://localhost:3000/main-7a3d3e8ea9d6afcdba75.min.js:8972:1), <anonymous>:238:35)
    at Array.map (native)
    at ListsAccounting.render …
Run Code Online (Sandbox Code Playgroud)

javascript ternary-operator jsx reactjs react-redux

1
推荐指数
3
解决办法
2828
查看次数

使用一个控制器处理多种资源的利弊

我们有一个 Spring MVC 应用程序,大多数 REST 操作是每个资源唯一的 GET 操作。因此,目前我们有许多控制器,其唯一的 GET 方法彼此没有区别(即使在 url、内容类型、参数等方面)。

为了消除这种重复,我们的团队成员提供了一个控制器,其中只有一个 GET 操作和一个带有服务的映射(资源名称 -> 资源服务)。

但是我们看到了诸如Spring注入调优更复杂,没有机会添加对内容类型,参数的一些限制 - 一言以蔽之的自定义操作等缺点。此外,还有多个资源驻留在单独的控制器中。此外,我不希望至少有一种简单的方法可以以多种方式记录 Swagger 中的唯一方法(有不同的描述)。

所以对我来说,一方面是代码较少,但另一方面是操作定制、架构混合、缺乏适当的文档或至少复杂的配置的机会有限。我认为在这里制定一种方法不是一个好方法。

我对吗?如果是我怎么证明。如果不是为什么?感谢您的时间和想法!

java rest model-view-controller design-patterns spring-mvc

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

在 SpringFox 2 中隐藏 Spring MVC 控制器的返回值

我有一个异步 Spring MVC 控制器,它返回Future. SpringFox 2 将其呈现为:

在此处输入图片说明

如何删除它?先感谢您!

spring spring-mvc documentation-generation swagger-ui springfox

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