Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate@GeneratedValue(name=???):ID的增量为5,而不是1_Java_Hibernate_Mariadb - Fatal编程技术网

Java Hibernate@GeneratedValue(name=???):ID的增量为5,而不是1

Java Hibernate@GeneratedValue(name=???):ID的增量为5,而不是1,java,hibernate,mariadb,Java,Hibernate,Mariadb,我正在使用Hibernate4ORM并搜索我的twitter应用程序。问题是,当我开始将tweets持久化到MariaDB表中时,id(主键)会增加五倍: 2 7 12 17 22 27 我尝试了所有可用的生成类型:序列、标识、表和自动。但这些都没有提供一个增量。我想我缺少一些配置,否则它应该提供1的增量。 这是我的实体类和hibernate.cfg.xml文件: @Entity @Indexed @Table(name="tweets_table") public class TweetPO

我正在使用Hibernate4ORM并搜索我的twitter应用程序。问题是,当我开始将tweets持久化到MariaDB表中时,id(主键)会增加五倍:

2
7
12
17
22
27
我尝试了所有可用的生成类型:序列、标识、表和自动。但这些都没有提供一个增量。我想我缺少一些配置,否则它应该提供1的增量。
这是我的实体类和hibernate.cfg.xml文件:

@Entity
@Indexed
@Table(name="tweets_table")
public class TweetPOJO implements Serializable{

private static final long serialVersionUID = 1123211L;

@Id
@GeneratedValue (???)
@Column(name = "raw_id" )
private int raw_id;

@Column(name = "tweet_id")
private String tweet_id;


@DateBridge(resolution=Resolution.DAY)  
@Column(name = "posted_time")
private String timestamp;

@Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO)
@Column(name = "cleaned_text")
private String tweet_text;


@Column(name = "hashtags")
@Field(index=Index.YES, analyze=Analyze.NO, store=Store.YES)
private String hashtags;

@Column(name = "media_url")
private String media_url;

@Column(name = "media_text")
private String media_text;

@Column(name = "media_type")
private String media_type;

@Column(name = "location")
private String location;

...
...
public void setUser_frind_count(int user_frind_count) {
    this.user_frind_count = user_frind_count;
}

@Override
public String toString() {
    return tweet_id+" : "+tweet_text;
}

}
下面是hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>

   <property name="hibernate.bytecode.use_reflection_optimizer"> true </property>
   <property name="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </property>
   <property name="hibernate.connection.driver_class"> com.mysql.jdbc.Driver </property>

   <!-- Assume test is the database name -->
   <property name="hibernate.connection.url"> jdbc:mysql://*******/clouddata </property>
   <property name="hibernate.connection.username"> root </property>
   <property name="hibernate.connection.password"> qwe123 </property>


   <property name="connection.pool_size"> 1 </property>
   <property name="hibernate.search.default.directory_provider"> filesystem </property>

   <property name="hibernate.search.default.indexBase"> E:\lucene_index </property> 
   <!-- 
     whether the schema will be created or just updated, every time the sessionFactory is created. 
    This is configured in the hibernate.hbm2ddl.auto property, which is set to update. So the schema 
    is only updated. If this property is set to create, then every time we run our application, the 
    schema will be re-created, thus deleting previous data.  
    -->
   <property name="hibernate.hbm2ddl.auto">update</property>
   <mapping class="twitter_crawling_modul.TweetPOJO"/>
</session-factory>

真的
org.hibernate.dialogue.mysqldialogue
com.mysql.jdbc.Driver
jdbc:mysql://********/clouddata
根
qwe123
1.
文件系统
E:\lucene\u索引
更新

您可以尝试使用序列生成器

@SequenceGenerator(name = "seq", sequenceName = "seq_name", allocationSize = 1)
@GeneratedValue (strategy = GenerationType.SEQUENCE, generator = "seq")

您可以尝试使用序列生成器

@SequenceGenerator(name = "seq", sequenceName = "seq_name", allocationSize = 1)
@GeneratedValue (strategy = GenerationType.SEQUENCE, generator = "seq")

实际操作对象的代码丢失了,很可能是罪魁祸首:这通常发生在您在持久化对象之前更新了对象几次、捕获了一些异常等情况下。。这对表来说不是问题(键不必是连续的,在64位键空间中,即使跳过一堆,也需要一段时间才能用完)。不过,这可能是代码中的一个严重问题。
显示诸如“auto_inc%”之类的变量@NorbertvanNobelen如何解决此问题?您能给出一些建议吗?实际操作对象的代码缺失,很可能是罪魁祸首:这通常发生在您在持久化对象之前更新了对象几次、捕获了一些异常等情况下。。这对表来说不是问题(键不必是连续的,在64位键空间中,即使跳过一堆,也需要一段时间才能用完)。不过,这可能是代码中的一个严重问题。
显示诸如“auto_inc%”之类的变量@NorbertvanNobelen如何解决此问题?你能给我一些建议吗?