- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有两个实体类,一个是从其他实体类继承的,
@Entity
@Table(name = "common", schema = "url_results@hbase_pu")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "launcher")
public class Person implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private String id;
@Column(name = "name")
private String name;
@Column(name = "path")
private String url;
-----
//getters and setters
}
另一个子类,
@Entity
@DiscriminatorValue(value = "owner")
public class Owner extends Person implements Serializable {
@Column(name = "workload_id")
protected long workloadId;
//getters and setters
}
我的persiestance.xml是
<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="hbase_pu">
<provider>com.impetus.kundera.KunderaPersistence</provider>
<class>com.abc.Owner</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="kundera.nodes" value="quickstart.cloudera"/>
<property name="kundera.port" value="2181"/>
<property name="kundera.keyspace" value="url_results"/>
<property name="kundera.dialect" value="hbase"/>
<property name="kundera.ddl.auto.prepare" value="create" />
<property name="kundera.client.lookup.class" value="com.impetus.client.hbase.HBaseClientFactory" />
</properties>
</persistence-unit>`enter code here`
当我使用持久调用时,它失败并显示
com.impetus.kundera.KunderaException:
java.lang.IllegalArgumentException: Entity object is invalid, operation
failed. Please check previous log message for details
at
com.impetus.kundera.persistence.EntityManagerImpl.persist(EntityManagerImpl.java:180)
at xx..xx.xx.xx.(DatabaseConnector.java:46)
at xx.xx.xx.testDatabaseConnector(DatabaseConnectorTest.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.IllegalArgumentException: Entity object is invalid, operation failed. Please check previous log message for details
at com.impetus.kundera.validation.rules.NullOrInvalidEntityRule.validate(NullOrInvalidEntityRule.java:52)
at com.impetus.kundera.graph.GraphGenerator.generate(GraphGenerator.java:125)
at com.impetus.kundera.graph.GraphGenerator.generateGraph(GraphGenerator.java:78)
at com.impetus.kundera.persistence.PersistenceDelegator.persist(PersistenceDelegator.java:130)
at com.impetus.kundera.persistence.EntityManagerImpl.persist(EntityManagerImpl.java:174)
...还有 25 个
如果我直接使用基类而不是子类,我就能够保留实体类。
知道我做错了什么吗?
最佳答案
在我将实体上的 @Table(name = "common", schema = "url_results@hbase_pu") 更改为 @Table(name = "common", schema = "url_results") 后,这才起作用,但是,这看起来像是 kundera 中的一个错误,并向他们提交了一个错误。
关于java - 无法使用 kundera 将继承的实体持久保存到 Hbase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43670675/
我使用 Kundera-Cassandra 3.2,想使用 Kundera 的事务管理。 我的处理方式是这样的: EntityManager manager = repo.getEntityManag
我正在使用 kundera-cassandra (V3.2) 并想限制一个选择查询。这正在使用以下代码: TypedQuery query = manager.createQuery(criteria
我正在尝试通过行键从数据库中删除特定记录。但是当我尝试执行这个查询时: Query query = em.createQuery( "DELETE FROM User u W
我有两个实体类,一个是从其他实体类继承的, @Entity @Table(name = "common", schema = "url_results@hbase_pu") @Inheritance(
我目前有一个运行正常的 HBase/Hadoop 集群,我对这些产品相当熟悉。我最近听说了 Kundera,它看起来是一个非常强大的工具,我想使用它。 但是,我似乎找不到任何关于使用 HBase 设置
我正在评估 kundera 和 Hibernate OGM 之间最好的框架选择。我的情况: 现有项目使用 hibernate ORM 来联系 Mysql 数据存储。现在我想在同一项目中读取/写入 ca
我正在努力在 Cassandra 中映射两个具有最小差异的表,但是 Kundera 无法正确映射我的模型(我已将其配置为根据 EntityManager 创建时的表验证映射)。给定以下复合键(根据 t
我正在使用 kundera 定义我的数据模型,该模型将存储在 hbase 中。有一个名为“Task”的类,它应该有一个通用的提交类型,如下所示: public class Task { ...
我有两个类,我想使用 OneToMany 与 EmbeddedId 的关系(我正在使用 kundera 框架)我的传感器实体类: public class SensorEntitie implemen
既然我有一个包含多个节点的 Cassandra 集群,我应该如何从 Java 代码中选择要连接的节点?显然,我可以连接到任何节点,但是最好的方法是什么? 例如,我一直在阅读昆德拉的文章,据我所知,您定
我想使用kundera作为apachestorm的dao层,将数据存储在cassandra数据库中。我的拓扑创建没有任何问题,我可以接收消息,但是当我尝试将数据存储在数据库中时,我收到消息: 2624
Java 是否对数据库的JPA 请求使用TCP 连接?例如,如果数据库服务器的 IP 地址 设置为 x.x.x.x:xxxx,那么哪种代理可以处理该连接? HTTP 或 TCP 代理? 最佳答案 JD
使用 JPA 注释 OneToOne/OneToMany 从 Cassandra 检索数据时,我们得到一个 null 对象(请参见下面的示例,其中“item”为 null)。 [ { "idP
我正在使用 Play! 2.0 并且在尝试使用 Cassandra 数据库时遇到问题。如何配置 application.conf 文件的属性以使用像 Kundera 这样的高级客户端。我是否必须在 c
我正在尝试在 JBoss EAP 6.1 上使用 Kundera 2.5.1(本质上与 JBoss AS 7.1 相同)。但是,当我部署应用程序时,我看到以下异常: [0m[31m12:44:24,1
我开发了一个 JAVA Rest Service (JDK 1.8),它使用 Kundera (V3.2) 进行 Cassandra 数据库连接。如果我使用 Tomcat 服务器在 eclipse 中
我想在 kundera-cassandra (V3.2) 实体中使用序列生成器。引用这个https://github.com/impetus-opensource/Kundera/issues/777
首先,我使用 HBase 0.94.5(也尝试过 0.92.2,结果相同)。 我遇到这样的情况: 变量类: @Entity @Table(name = "variable", schema = "ke
我是一名优秀的程序员,十分优秀!