我们完全按照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
我们正在将Spring Data与PageRequest一起使用,并使用大量数据.除了执行查询以获取总页数之外,所有查询都以最佳方式执行.有没有办法禁用此功能,还是我们很可能必须实现我们自己的Pageable?
编辑: 经过进一步分析后,我认为解决这个问题的唯一方法是不使用Spring Data并使用EntityManager,因为它允许设置起始行和要返回的记录数.我们只需要下一页是否可用,所以我们只需要检索一条额外的记录.我们还需要一个动态查询,这在Spring Data中似乎是不可能的.
编辑2:似乎我没有等待足够长的时间来做出一些回应.多谢你们!!!
我有两个对象,父母和孩子.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) 我一直在研究建立分布式会话环境的意义,并希望确保我没有遗漏任何重点.
关于开发将在分布式会话环境中运行的应用程序,我发现的主要开发问题是可能在会话中保留的数据丢失.显然,所有内容都必须被序列化或转换为无状态(或两者的组合),这对于已经编码用于繁重会话使用的任何应用程序来说可能是一项重要任务.
我应该注意其他任何潜在的问题或影响吗?
编辑:更具体(作为示例),我指的是servlet容器环境中的Java Web应用程序服务器端会话.
spring ×3
spring-data ×2
distributed ×1
hibernate ×1
java ×1
jpa ×1
mysql ×1
session ×1
spring-mvc ×1