gpt4 book ai didi

java - 注解@SequenceGenerator和编译错误

转载 作者:行者123 更新时间:2023-12-01 14:44:12 27 4
gpt4 key购买 nike

我是.Net程序员,但是这次我正在从事Java项目,并且遇到了一些困难。这个 java 项目不是我的,它是由其他开发人员开发的,并且使用 Hibernate。

当我运行 Ant 构建器时,我收到此错误:

9: error: annotation type not applicable to this kind of declaration
@SequenceGenerator( name="companynameSequence" , sequenceName="COMPANYNAME_SEQUENCE" , allocationSize=1 )
^

此注释位于名为 package-info.java 的文件中。这个文件的内容就是这几行代码:

@SequenceGenerator( name="companynameSequence" , sequenceName="COMPANYNAME_SEQUENCE" , allocationSize=1 )
package com.companyname.application.model;

import javax.persistence.SequenceGenerator;

import org.hibernate.annotations.Parameter;
import org.hibernate.annotations.TypeDef;
import org.jasypt.hibernate.type.EncryptedStringType;

如果我删除该注释,项目会成功编译,但出现运行时错误:

Invocation of init method failed; nested exception is org.hibernate.AnnotationException: Unknown Id.generator: companynameSequence

我正在使用 Eclipse Juno 和 JRE 1.7

你能帮我吗?

谢谢

最佳答案

你需要写这样的东西:

//different annotations
class className{
@Id
@SequenceGenerator(sequenceName = "COMPANYNAME_SEQUENCE", name = "companynameSequence")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="companynameSequence")
@Column(name="ID", nullable=false, unique=true)
private int id;
//other fields and methods
}

或者这个:

//different annotations
class className{
@Id
@SequenceGenerator(sequenceName = "COMPANYNAME_SEQUENCE", name = "companynameSequence")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="companynameSequence")
@Column(name="ID", nullable=false, unique=true)
public int getId(){};
//other fields and methods
}

这只是示例,字段名称可能与我的不同。

并阅读this关于标识符和生成器的帖子

关于java - 注解@SequenceGenerator和编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15620522/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com