小编Sir*_*eta的帖子

FetchMode如何在Spring Data JPA中工作

我确实在我的项目中有三个模型对象之间的关系(帖子末尾的模型和存储库片段).

当我打电话时PlaceRepository.findById它会触发三个选择查询:

( "SQL")

  1. SELECT * FROM place p where id = arg
  2. SELECT * FROM user u where u.id = place.user.id
  3. SELECT * FROM city c LEFT OUTER JOIN state s on c.woj_id = s.id where c.id = place.city.id

这是相当不寻常的行为(对我而言).在阅读Hibernate文档后我可以告诉它应该总是使用JOIN查询.在类中FetchType.LAZY更改为 查询(使用附加SELECT 查询)时,查询没有区别,更改为 (使用JOIN查询)时类相同.FetchType.EAGERPlaceCityFetchType.LAZYFetchType.EAGER

当我使用CityRepository.findById抑制火时两个选择:

  1. SELECT * FROM city c where id = arg
  2. SELECT * FROM state s where id = city.state.id

我的目标是在所有情况下都有一个sam行为(总是JOIN或SELECT,但是JOIN首选).

型号定义:

地点:

@Entity
@Table(name = …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa spring-data-jpa

74
推荐指数
3
解决办法
8万
查看次数

连接线段中set的点

我有一个任务,我必须连接2D平面中的所有点.有四个条件需要满足:

  1. 连接在一起的所有段的长度必须是最小的.
  2. 一个点可以是仅一个线段的一部分.
  3. 线段不能相交
  4. 必须使用所有点(一个不能单独留下,但只有在无法避免的情况下)

图像可视化问题: 在此输入图像描述

错误的图像正确连接点,虽然总长度大于左侧的长度.

起初,我考虑对点进行排序,并使用扫描线进行排序并构建所有可能性的树,尽管它看起来像是一种复杂解决方案,具有巨大的复杂性.因此,我寻找更好的方法.我会很感激一些提示要做什么,或者我怎么能解决这个问题.

algorithm geometry

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

在没有ModelAndView的Spring MVC 4中重定向301状态

我尝试重定向301 Status Code(你知道我想成为SEO友好等).

我使用InternalResourceViewResolver所以我想使用某种类似于return "redirect:http://google.com"我的控制器中的代码.这虽然会发送一个302 Status Code

我尝试过使用a HttpServletResponse来设置标题

@RequestMapping(value="/url/{seo}", method = RequestMethod.GET)
public String detail(@PathVariable String seo, HttpServletResponse response){
    response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
    return "redirect:http://google.com";
}
Run Code Online (Sandbox Code Playgroud)

它仍然返回302.

在检查文档和Google搜索结果后,我想出了以下内容:

@RequestMapping(value="/url/{seo}", method = RequestMethod.GET)
public ModelAndView detail(@PathVariable String seo){
    RedirectView rv = new RedirectView();
    rv.setStatusCode(HttpStatus.MOVED_PERMANENTLY);
    rv.setUrl("http://google.com");
    ModelAndView mv = new ModelAndView(rv);
    return mv;
}
Run Code Online (Sandbox Code Playgroud)

它确实工作得很好,正如预期的那样,返回代码 301

我想在不使用ModelAndView的情况下实现它(也许它完全没问题).可能吗?

注意:包含的片段只是详细信息控制器的一部分,重定向仅在某些情况下发生(支持旧版URL).

java spring spring-mvc

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

如何正确映射持久层和域对象

假设我有一个代表一个人的域 java 类:

class Person {

    private final String id; // government id
    private String name;
    private String status;

    private Person(String id, String name) {
        this.id = id;
        this.name = name;
        this.status = "NEW";
    }

    Person static createNew(String id, String name) {
        return new Person(id, name);
    }

    void validate() {
        //logic
        this.status = "VALID";
    }


    public static final class Builder {

        private String id;
        private String name;
        private String status;

        private Builder() {
        }

        public static Builder aPerson() {
            return …
Run Code Online (Sandbox Code Playgroud)

java domain-driven-design

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