我正在使用ObjectDB构建一个Spring MVC应用程序。我的目标是使用Java8 Date and Time作为在where子句中进行比较的查询参数。
假设有以下实体具有度量datetime对象:
@Entity
public class MyEntity {
@Id @GeneratedValue
private long id;
@Type(type = "org.jadira.usertype.dateandtime.threeten.PersistentLocalDateTime")
private LocalDateTime dateTime;
//other properties, constructors, getter...
}
和以下存储库:
public interface EntityRepository extends CrudRepository<MyEntity, Long> {
@Query("SELECT e FROM MyEntity e WHERE e.dateTime BETWEEN ?1 AND ?2")
Iterable<MyEntity> findByTimeSpan(LocalDateTime start, LocalDateTime end);
Iterable<MyEntity> findAll();
}
现在,如果我在我的存储库上调用findByTimeSpan
,我会得到一个空的可迭代对象。相反,调用findAll()
会给我数据库中的所有实体(包括它们正确的dateTime)。
我知道这是由于JPA中不存在新的Time API造成的。但是由于我之前使用HSQLDB和Hibernate作为持久层(由于性能问题不得不切换),我知道即使没有JPA的支持也是可能的。
是否有任何已知的解决此问题的方法?
我的想法:
-为Time API中的每个使用的类编写一个带有@Entity
注释的包装器,包括它们的属性并委托给原始方法
-持久化java。util。Date(或者java.sql.Timestamp),并在代码中使用getter作为LocalDateTime
但我的问题是(除了努力之外)效率。当软件投入生产性使用时,数据库必须存储超过一百万个MyEntity类实体(数量不断增加),更不用说其他类了。
那么,有没有人有办法在ObjectDB中使用LocalDateTime作为WHERE参数呢?
提前感谢
ObjectDB(和JPA)当前不支持LocalDateTime作为日期/时间类型。它可能仍然作为任何其他可序列化类型支持存储,但不支持查询。
因此,您必须使用标准的JPA日期/时间类型,并可能提供包装器方法来将值转换为LocalDateTime和从LocalDateTime转换值。
pm.detachcopy正在工作? 我正在制作一个spring+ObjectDB(JDO)程序。 PersistenceManager#DetachCopy返回一个瞬态对象,尽管@PersistenceCapable:Detachable为true。 下面是一个示例代码。 我有一个简单的测试模型(POJO) 可分离的设置为“true”。 而dao是 我认为我在(2)处有一种超然的状态。但只是暂时
ObjectDB 是个功能强大的Java对象数据库,具有简单、快速、可靠和易用等特点。支持从KB到GB的数量级,可以用来嵌入到各种 Java 应用中。兼容 JDO 规范。
我有一个API调用,它需要从MySQL数据库中提取一些信息,以便完成请求。问题是,NodeJS不会等待查询响应,我已经尝试用承诺来解决这个问题。下面是我的代码: 这个函数将返回Promise对象,这将触发SQL语法错误,因为这不是预期的数据库输入。我做错了什么?任何建议都非常感谢。
您可以看到,子查询中没有使用协议实体路径a1的别名,而是被协议实体路径A2的别名所取代。在querydsl中还需要做一些其他的事情才能生成这个查询吗?
我希望通过登录搜索员工列表,并使用扩展的DAO接口: 在我的服务层中,我用
样本子句 sample_clause允许您指示数据库从表中的随机数据样本中进行选择,而不是从整个表中进行选择。 我想使用QueryDSL运行下面的查询 样本子句 sample_clause允许您指示数据库从表中的随机数据样本中进行选择,而不是从整个表中进行选择。 从测试t样本(80)中选择,其中t.test_id=01,t.test _ suite _ id = 02 其中条件是动态的,我使用qu