Java hibernate ogm mongodb时间戳
我有以下mongodbJava hibernate ogm mongodb时间戳,java,mongodb,hibernate,hibernate-ogm,Java,Mongodb,Hibernate,Hibernate Ogm,我有以下mongodb { "_id" : ObjectId("57713c6304f4dc08008b45ba"), "SYS_FluxName" : "ERDF_F12_17X100A100F0073T_GRD-F046_0321_00011_FL_00001_00001.xml", "SYS_ReadDateTime" : Timestamp(6300883749567463, 83), "SYS_BaseNameZip" : "ERDF_F12_17X10
{
"_id" : ObjectId("57713c6304f4dc08008b45ba"),
"SYS_FluxName" : "ERDF_F12_17X100A100F0073T_GRD-F046_0321_00011_FL_00001_00001.xml",
"SYS_ReadDateTime" : Timestamp(6300883749567463, 83),
"SYS_BaseNameZip" : "ERDF_F12_17X100A100F0073T_GRD-F046_0321_00011_M_30_20160301223530.zip",
"SYS_Status" : NumberLong(1),
"SYS_DateCreaERDF" : "2016-03-01T20:38:48Z"
}
以及以下实体
public class EnlFluxF12Entry implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@Column(name="_id")
private ObjectId id;
@Column(name="SYS_FluxName")
public String sysFluxName;
@Column(name="SYS_ReadDateTime")
@Temporal(TemporalType.TIMESTAMP)
public Date sysReadDateTime;
@Column(name="SYS_BaseNameZip")
public String sysBaseNameZip;
@Column(name="SYS_Status")
public Long sysStatus;
@Column(name="SYS_DateCreaERDF")
public String sysDateCreaERDF;
public ObjectId getId(){
return id;
}
...
}
尝试查找()时,字段public Date sysReadDateTime生成异常
persistence.xml
<?xml version="1.0"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="primary" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
<properties>
<property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossStandAloneJtaPlatform"/>
<property name="hibernate.ogm.datastore.provider" value="mongodb" />
<property name="hibernate.ogm.datastore.database" value="heroku_6tp7jgpd" />
<property name="hibernate.ogm.datastore.host" value="*****" />
<property name="hibernate.ogm.datastore.port" value="*****" />
<property name="hibernate.ogm.datastore.username" value="*****" />
<property name="hibernate.ogm.datastore.password" value="*****" />
</properties>
</persistence-unit>
</persistence>
org.hibernate.ogm.jpa.hibernateogm持久性
我是否应该使用MongoDB时间戳类型将日期类型更改为sweet?此问题的问题是时间戳是MongoDB的内部类型,Hibernate OGM无法将其转换为Java类型 使用时:
@Column(name="SYS_ReadDateTime")
@Temporal(TemporalType.TIMESTAMP)
public Date sysReadDateTime;
Hibernate OGM将在DB上创建如下内容:
"SYS_ReadDateTime" : "2017/01/11 11:52:28:493 +0000"
您有错误,因为情况并非如此
据我所知,目前您有以下选择:
hibernate.ogm.datastore.grid\u方言
来使用它,而不是默认的属性很抱歉,目前没有更简单的方法来解决这个问题,我们的路线图上有提供更通用的方法,以便用户可以传递自定义类型。您可以向我们展示您使用的配置吗?我添加了persistence.xml您是通过hibernate mongo API插入数据的吗?我的意思是BSONTimestamp是一种内部类型。您应该将mongo db collection更改为使用BSONDate,并确保其正常工作。值得一看的东西。我对mongoDB有只读访问权限,我不能更改任何东西。看看您是否可以将其映射到您这边的长期价值
"SYS_ReadDateTime" : "2017/01/11 11:52:28:493 +0000"