小编ske*_*625的帖子

在STS 3.1中的Spring Data JpaRepository接口中获取"无效的派生查询"错误

我们完全按照Spring Data文档中的说明实现了我们的存储库.一切都很好,直到我们从STS 2.9升级到STS 3.1.所有使这些错误消失的尝试都失败了,在某些情况下它们甚至没有意义!它们与界面或使用的实体中的任何属性都不匹配!

这是一个例子:

public interface CreditNotesRepository extends JpaRepository<CreditNotes, Long> {

    CreditNotes findCurrentCreditNotes(Long shipmentDetailId);
}
Run Code Online (Sandbox Code Playgroud)

findCurrentCreditNotes是我们实体中的命名查询.这段代码执行得很好.

@NamedQueries({
    @NamedQuery(name = "CreditNotes.getCount", query = "SELECT COUNT(f) FROM CreditNotes f"),
    @NamedQuery(name = "CreditNotes.findCurrentCreditNotes", query =
        "SELECT creditNotes FROM CreditNotes creditNotes"
        + " WHERE creditNotes.shipmentDetail.shipmentDetailId = ?1 "
        + " AND creditNotes.notesSeqNumber =  (SELECT max(creditNotes2.notesSeqNumber) FROM CreditNotes creditNotes2"
        + " WHERE creditNotes.shipmentDetail.shipmentDetailId = creditNotes2.shipmentDetail.shipmentDetailId)")
})
Run Code Online (Sandbox Code Playgroud)

我们得到的错误:

Invalid derived query! No property find found for type ca.cole.freight.model.CreditNotes
Run Code Online (Sandbox Code Playgroud)

虽然这只是一个标志(不影响编译),但令人讨厌并且令人困惑.任何人都可以对此有所了解吗?并向我解释,就像我6岁!;)

spring spring-mvc sts-springsourcetoolsuite spring-data spring-data-jpa

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

从PageRequest中禁用计数查询以获取总页数的方法?

我们正在将Spring Data与PageRequest一起使用,并使用大量数据.除了执行查询以获取总页数之外,所有查询都以最佳方式执行.有没有办法禁用此功能,还是我们很可能必须实现我们自己的Pageable?

http://static.springsource.org/spring-data/data-commons/docs/1.3.2.RELEASE/api/org/springframework/data/domain/PageRequest.html

http://static.springsource.org/spring-data/data-commons/docs/1.3.2.RELEASE/api/org/springframework/data/domain/Pageable.html

编辑: 经过进一步分析后,我认为解决这个问题的唯一方法是不使用Spring Data并使用EntityManager,因为它允许设置起始行和要返回的记录数.我们只需要下一页是否可用,所以我们只需要检索一条额外的记录.我们还需要一个动态查询,这在Spring Data中似乎是不可能的.

编辑2:似乎我没有等待足够长的时间来做出一些回应.多谢你们!!!

spring spring-data spring-data-jpa

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

当父/子对象同时持久化时,如何在Hibernate + Spring JPA配置中填充外键值?

我有两个对象,父母和孩子.Child有一个外键返回PARENT表(MySQL数据库)中的PARENT_ID字段.

当同时创建/组装父和子对象,并且调用persist时,不会自动填充Child PARENT_ID外键.

示例代码:

@Entity
@Table(name = "PARENT")
public class Parent {
    @Column(name = "PARENT_ID")
    private Long parentId;

    @OneToMany(mappedBy = "parent")
    private List<Child> children;
}

@Entity
@Table(name = "CHILD")
public class Child {
    @Column(name = "CHILD_ID")
    private Long childId;

    @Column(name = "PARENT_ID")
    private Long parentId;

    @ManyToOne
    @JoinColumn(name = "parent_id")
    private Parent parent;
}
Run Code Online (Sandbox Code Playgroud)

我有两个持久性样本:

1)使用Hibernate EntityManager:

@PersistenceContext
EntityManager em;

...

em.persist(parent);
Run Code Online (Sandbox Code Playgroud)

2)使用Spring Data JPA JpaRepository实例:

public interface ParentRepository extends JpaRepository<Parent, Long> {

}
Run Code Online (Sandbox Code Playgroud)

在我的ParentServiceImpl中:

@Autowired
private ParentRepository parentRepository;

...

public …
Run Code Online (Sandbox Code Playgroud)

mysql spring hibernate jpa spring-data-jpa

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

分布式会话对发展的影响

我一直在研究建立分布式会话环境的意义,并希望确保我没有遗漏任何重点.

关于开发将在分布式会话环境中运行的应用程序,我发现的主要开发问题是可能在会话中保留的数据丢失.显然,所有内容都必须被序列化或转换为无状态(或两者的组合),这对于已经编码用于繁重会话使用的任何应用程序来说可能是一项重要任务.

我应该注意其他任何潜在的问题或影响吗?

编辑:更具体(作为示例),我指的是servlet容器环境中的Java Web应用程序服务器端会话.

java session distributed

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