Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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批注-id设置不正确_Java_Sql Server 2005_Hibernate_Jpa - Fatal编程技术网

Java Hibernate批注-id设置不正确

Java Hibernate批注-id设置不正确,java,sql-server-2005,hibernate,jpa,Java,Sql Server 2005,Hibernate,Jpa,我有一大堆用JPA注释如下的Java bean: import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class TitleEntry extends Entry { private Long id; public

我有一大堆用JPA注释如下的Java bean:

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class TitleEntry extends Entry {
    private Long id;

    public TitleEntry() { }

    public TitleEntry(String code, String label) {
        super(code, label);
    }

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    public Long getId() {
        return id;
    }

    protected void setId(Long id) {
        this.id = id;
    }
}
对于每个对象,id总是这样生成的,并且似乎工作正常

现在的问题是: 在Java中保存对象时:

dao.save(titleEntry);
bean的id属性设置为int值,该值与实际id不一致。 它对应于hibernate_序列(我想)

问题:

  • 为什么?
  • 什么是hibernate_序列(在hibernate网站上找不到合适的解释)
  • 我怎样才能修好它

  • 注意:我正在使用Java 1.6、MSSQL2005、Hibernate3尝试使用相应的注释指定SequenceGenerator:

    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE)
    @SequenceGenerator(name = "myGen", sequenceName = "MY_SEQUENCE")
    public Long getId() 
    {
        return id;
    }
    
    为什么?

    我不知道,前一段关于“真实身份”的内容没有任何意义。你能澄清一下吗?显示
    TitleEntry
    表的结构也可能有所帮助

    什么是
    hibernate\u序列(在hibernate网站上找不到合适的解释)

    Hibernate使用的序列或表的默认名称(请参阅)。考虑到SQL Server不支持序列,我打赌是后者。您应该检查生成的DDL,以准确地找到所做的事情(并显示相关部分)

    但令我惊讶的是,Hibernate没有默认设置为
    IDENTITY
    (您使用的是什么版本的Hibernate?)

    我怎样才能修好它

    我不知道您想要修复什么,但如果您想要完全控制,请不要使用
    AUTO
    策略(
    IDENTITY
    在SQL Server中很常见)