@Entity
public class Company{
@Id
private Integer companyId;
private String name;
@OneToMany(mappedBy = "company")
private List<CompanyFund> companyFunds;
}
@Entity
public class CompanyFunds{
@Id
private Integer fundId;
private String name;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "company_id")
private Company company;
}
//controller
@GetMapping(value = "/{companyId}")
public Resource<Company> find(@PathVariable Integer companyId) {
Resource<Company> companyResource = companyService.find(companyId);
return companyResource;
}
//service
public Resource<CompanyTypeOther> find(Integer companyId) {
Company company = companyRepository.findById(companyId);
return restResourceAssembler.toResource(company);
}
@Component
public class RestResourceAssembler implements ResourceAssembler<T, Resource<T>> {
private EntityLinks entityLinks;
public RestResourceAssembler(EntityLinks entityLinks) {
this.entityLinks = entityLinks;
}
@Override
public Resource<T> toResource(T entity) {
Resource<T> resource = new Resource<>(entity);
resource.add(entityLinks.linkToSingleResource(entity.getClass(), entity.getId()).withSelfRel());
return resource;
}
}
public class ServletInvocableHandlerMethod extends InvocableHandlerMethod {
......
public void invokeAndHandle(ServletWebRequest webRequest, ModelAndViewContainer mavContainer,
........other code
try {
this.returnValueHandlers.handleReturnValue(
returnValue, getReturnValueType(returnValue), mavContainer, webRequest);
}
catch (Exception ex) {
if (logger.isTraceEnabled()) {
logger.trace(formatErrorForReturnValue(returnValue), ex);
}
throw ex;
}
}
.....
}
我注意到的另一件事是,只有在返回资源
时才会出现此问题。如果我从控制器返回company
,就不会发生意外情况。懒惰装载很好。
因为我想延迟加载实体,所以一个小的修复/黑客解决了这个问题(从现在开始)。
@JsonIgnore
@OneToMany(mappedBy = "company")
private List<CompanyFund> companyFunds;
@jsonignore
防止序列化惰性加载实体。所以我猜杰克逊是这里的罪魁祸首。
这不是一个修复是我的观点,但只是一个黑客做的事情。仍在等待Spring
团队的人回复。
我试图在JPanel上显示图片,但一直出现错误: Java语言lang.IllegalArgumentException:input==null! 我不明白发生了什么。 这是我正在使用的代码: 这只会导致我得到错误! 堆栈跟踪产生以下结果: 我如何解决这个问题?我已经检查了图像的位置,并且从不同的位置尝试,总是得到相同的错误! 我正在使用Netbean IDE。
我正在构建我的第一个Spring Boot应用程序。但是我不能正确地得到我的requestMapping控制器的回答。 这是我的主要课程: 这是我的RestController: 如果我看一下日志,我可以看到“/hi”映射: 但是当我访问:http:localhost:8080/hi时,我看到了一个空白页面,我期望看到“Hello World”文本。 为什么我得到一个空白页面? ---编辑----
我有base64字符串,我想使用Spring的RESTController在img标记上打印base64图像。 图像不输出。有什么问题?
问题内容: 我有一个包含列表的类,并使用一对多的Hibernate映射将其映射,如下所示: 这些还具有一个field ,用于根据以下条件进行过滤: 这可以正常工作,并且结果符合预期。 现在 是我的问题 :为什么当我将fetch类型显式设置为时,s在结果列表中出现多次? 我如何更改我的Criteria代码才能在新设置下达到相同的结果? 问题答案: 如果我正确理解您的配置,这实际上是预期的行为。 您在
问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能重复: 如何从PHP的MySql响应中“回显”“资源ID#6”? 我是php和SQL的新手,我正在尝试使php页面列出表中的枚举数。我正在使用此代码,但它返回资源ID#2: 问题答案: 因为执行时会获得mysql资源。 使用类似的方法来获取下一行。它返回一个以列名作为索引的数组。就您而言,可能是。 这是您的代码段的修复程序和一些小改进:
问题内容: 我有一个包含列表的类,并使用一对多的映射将其映射,如下所示: 这些Order还具有一个,用于根据以下条件进行过滤: 这可以正常工作,并且结果符合预期。 现在是我的问题:为什么当我将访存类型显式设置为时EAGER,Orders在结果列表中出现多次? 我如何更改我的标准代码才能在新设置下达到相同的结果? 问题答案: 如果我正确理解你的配置,这实际上是预期的行为。 你Order在任何结果中都