我从Hibernate开始,但有一个我无法弄清的错误。
我有以下课程:
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class AbstractColumn {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private String id;
private String name;
//Other stuff
}
那我有
@Entity
public class DoubleColumn extends AbstractColumn implements Column {
@ElementCollection
private Map<Double,String> isNA;
private double min=0;
private double max=0;
@ElementCollection
private List<Double> data;
// a lot of stuff
}
最后:
@Entity
public class DataFrame {
@OneToMany(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
private List<AbstractColumn> data;
private String name;
@Id
@GeneratedValue
private String id;
@ElementCollection
private Map<String,Integer> colIndex;
//more stuff
}
我得到的错误是:
Exception in thread "main" org.hibernate.id.IdentifierGenerationException: Unknown integral data type for ids : java.lang.String
at org.hibernate.id.IdentifierGeneratorHelper.getIntegralDataTypeHolder(IdentifierGeneratorHelper.java:224)
at org.hibernate.id.enhanced.SequenceStructure$1.getNextValue(SequenceStructure.java:98)
at org.hibernate.id.enhanced.NoopOptimizer.generate(NoopOptimizer.java:40)
at org.hibernate.id.enhanced.SequenceStyleGenerator.generate(SequenceStyleGenerator.java:432)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:105)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192)
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177)
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:675)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:667)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:662)
at Main.main(Main.java:285)
错误引发的唯一提示是该错误在此处的主类中:
DoubleColumn c1 = new DoubleColumn("Datos varios");
c1.addData(12);
c1.addData(11);
c1.addData(131);
c1.addData(121);
c1.addData(151);
c1.addData(116);
DataFrame datosHibernate = new DataFrame("Dataframe Hibernate");
datosHibernate.addColumn(c1);
Configuration hibernateConfig = new Configuration();
SessionFactory sessionFactory = hibernateConfig.configure().buildSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(datosHibernate);
session.getTransaction().commit();
session.disconnect();
session.close();
System.exit(0);
这些id是字符串,我将它们标注为@GeneratedValue(我认为我不需要自己初始化它们)。关系@OneToMany具有级联注释,因此应正确映射。
我已经尝试了没有session.save行的代码,并且不会抛出错误,因此代码本身不是问题,它必须与Hibernate兼容。
我的配置文件是:
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:h2:E:/bd;DB_CLOSE_DELAY=-1;MVCC=TRUE</property>
<property name="connection.driver_class">org.h2.Driver</property>
<property name="connection.username">user</property>
<property name="connection.password"></property>
<property name="dialect">org.hibernate.dialect.H2Dialect</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">create</property>
<mapping class="com.dataframe.estructuras.DataFrame"></mapping>
<mapping class="com.dataframe.estructuras.column.AbstractColumn"/>
<mapping class="com.dataframe.estructuras.column.types.DoubleColumn"/>
</session-factory>
</hibernate-configuration>
它创建了数据库html" target="_blank">文件,我看到了生成的所有SQL代码,表以及全部。是当事情中断时它尝试存储信息的时间。
如果要将String用作数据库密钥,则需要使用UUID自动生成密钥。像这样:
@Id @GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
private String myId;
我是memmory数据库中的新手。 我尝试使用H2数据库开发带有spring boot、spring data JPA的项目,但在初始化应用程序时遇到了问题。 原因:组织。h2.jdbc。JdbcSQLException:未知的数据类型:“FK\u PERSON\u PERSONTYPE\u IDX”;SQL语句: 因为这个脚本是从MySQL导出的。所以我认为H2不理解一些错误的语法 例如,这是脚
我正在为一个JPA项目进行集成测试。测试在嵌入式h2数据库上运行。但是,当我使用Hibernate模式生成时,我收到了h2的错误 错误为org。h2.jdbc。JdbcSQLException:未知数据类型:“INTERVAL”; h2文档表明支持间隔: http://www.h2database.com/html/datatypes.html#interval_type 我用的是h2版本1.4.
我有以下实体,正在使用liquibase 要使用liquibase加载示例数据,请使用以下csv文件。 以及参考文件的内容 液化酶的定义如下: 然而,当使用hibernate加载数据时,我遇到以下错误。 然后我发现了这个网站http://www.solewing.org/blog/2015/08/hibernate-postgresql-and-lob-string/它说postgres将文本存储
问题内容: 我正在使用JDBC和它的新功能。但我不断收到此运行时异常: 这是给定的代码 如何使此代码起作用?我只是JDBC的初学者。 对于上面的代码;PASS =“ passowrd”,USER =“ root” 我在通过此站点修复的端口上遇到了问题 非常感谢 问题答案: 请在mysql数据库中检查数据库名称“ kholofedb ”是否存在 我想你还没有创造 请检查一次(如果没有创建)及其相关表
问题内容: 我有一个我必须验证问题值的对象,这些对象的某些属性是自定义对象的数组。这样一来,这将涉及到数组的各个元素。为每个元素执行吸气剂,例如: 这是我需要达到的。我已使用带有属性列表的枚举以以下方式提取了数据。 致电: 我将使用数组中不同类型和不同值的多个数组。我想创建一个如下的方法。 这给了我多个错误,这些错误主要与repeatingGrp []有关。数组类型应与枚举名称相同。是否可以创建这
平台:Linux 3.2.0 x86(Debian 7.1) 编译器:GCC 4.7.2(Debian 4.7.2-5) 我正在编写一个整数到字符串的转换函数,该函数接受参数的整数值(基数)。整数参数(基数)的有效范围非常小(2-36),小于字符的最大大小。所以我想把参数声明为char,但我必须用所说的参数乘以long-long int,我想知道这到底是怎么回事。我不想将参数声明为char,如果这