我们使用1.3.5版本创建了一个spring boot项目。我们的应用程序与Mysql数据库交互。我们创建了一组JPA存储库,在其中我们使用了findAll、findOne和其他自定义查询方法。
我们正面临一个随机出现的问题。以下是复制它的步骤:
>
使用spring启动应用程序在数据库上启动读取查询。
现在,使用mysql-console手动更改上面读取查询返回的记录的Mysql中的数据。
再次使用Application激发相同的读取查询。
在步骤3之后,我们本应该收到步骤2修改后的结果,但我们得到的却是修改前的数据。
现在,如果我们再次使用application激发read查询,它将给出正确的值。
此问题随机发生。我们没有在应用程序中使用任何类型的缓存。
在调试过程中,我发现jpa-repository代码实际上在调用mysql,并且它也获取最新的结果,但是当这个调用返回到我们的应用程序服务时,令人惊讶的是返回值中有旧的数据。
请帮助我们找出可能的原因。
JPA/数据源配置:
服务方式:
@Override
@Transactional
public List<Event> getAllEvent() {
return eventRepository.findAll();
}
Jparepository:
public interface EventRepository extends JpaRepository<Event, Long> {
List<Event> findAll();
}
@Cacheable(false)
示例:
@Entity
@Table(name="table_name")
@Cacheable(false)
public class EntityName {
// ...
}
我有一个带有嵌入Id的类。当我尝试使用Jpa存储库进行搜索时,它只返回一个空对象。问题似乎出在嵌入式Id中,因为我用一个没有这个Id的类进行了测试,结果很好。 当我针对数据库进行测试时,JPA在控制台中输出的查询工作正常。 并且没有输出错误。 编辑:数据库中有数据 EDIT2:添加了equals和hashcode。 编辑3:findAll方法有效。 实体 嵌入ID 存储库 服务 正如你所看到的,我
问题内容: 快速版本 基本上,我正在更新hibernate表,后续查询正在加载陈旧的值。 详细版本 hibernate(3.3.1.GA)和EhCache(2.4.2)。 包含页面的持久对象,我将页面添加到本书的中间。我正在使用Databinder / Wicket,尽管我认为这并不相关。 适用的字段/方法是: 最终结果是,有一个新页面添加到列表中,并且数据库也进行了相应更新,我已经在我的数据存储
我需要一个概念来设计一个使用Spring boot、Hibernate和JPA的多数据库应用程序。 目前我正在考虑支持4个关系数据库(Mysql,H2,SQLLite,Oracle)。 我所做的是使用spring boot profile特性选择正确的数据库profile,然后加载相关的数据库属性。
问题内容: 我有以下代码: 返回的错误是:ImportError:没有名为JSONEncoder的模块 问题答案: 使用Flask的内置函数,因为它已经扩展为可以使用日期: 数据将通过一个data包含行数组的单键()作为对象返回(根据行返回的形式将其表示为数组或对象)。 如果需要序列化更多类型(例如,要返回而不是实例),则需要用J知道如何处理类型的子类覆盖Flask的属性: 然后可以在Flask实
我正在尝试从mysql数据库中检索今天的记录。 和控制器代码: 我希望通过使用findByDate(...)获得今天的记录方法,但似乎不起作用。在查看MysqlWorkbench的数据时,我还注意到一个小问题:日期似乎提前了2小时(例如:现在是11:57,但在mysql workbench软件中显示的是9:57,当我查询服务器时间时,显示的是不正确的tme……)我其实不关心小时/分钟/秒,我只想检
大家好,我在一个使用SpringDataJPA的SpringMVC项目中工作,我在一个从JpaRepository扩展而来的接口中有一个nativeQuey,在该查询中,我从不同的表中选择一些值,并返回一个 我打印了该ArrayList的值,其内容如下: 由于查询返回3行,每行有7个值,我怀疑这些对象是3(列表),每个列表有7个字段,我非常确定它们是字符串和int,我在类中有两个导入,我想在其中强