当我尝试编译一个具有hibernate注释以映射到db的DTO文件时,我遇到了一个奇怪的问题.当失败时,下面有一个奇怪的消息日志.
可能是这个问题的原因是什么?我想这个错误来自文件CashDTO.我在CashDTO. java文件中做错了什么?
可能是这个问题的原因是什么?我想这个错误来自文件CashDTO.我在CashDTO. java文件中做错了什么?
import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; import javax.persistence.TableGenerator; import javax.persistence.Version; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; /** * @author othmanelmoulat * */ @Entity @TableGenerator(name = "cash_GEN",table = "jbilling_seqs",pkColumnName = "name",valueColumnName = "next_id",pkColumnValue = "cash",allocationSize = 100) @Table(name = "cash") public class CashDTO implements Serializable { int id; BigDecimal amount; Date date; int versionNum; public CashDTO() { super(); // TODO Auto-generated constructor stub } public CashDTO(int id) { super(); this.id = id; } public CashDTO(int id,BigDecimal amount,Date date) { super(); this.id = id; this.amount = amount; this.date = date; } public CashDTO(int id,Date date,int versionNum) { super(); this.id = id; this.amount = amount; this.date = date; this.versionNum = versionNum; } @Id @GeneratedValue(strategy = GenerationType.TABLE,generator = "cash_GEN") @Column(name = "id",unique = true,nullable = false) public int getId() { return this.id; } public void setId(int id) { this.id = id; } @Column(name = "amount",nullable = false) public BigDecimal getAmount() { return amount; } public void setAmount(BigDecimal amount) { this.amount = amount; } @Column(name = "date",nullable = false) public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } @Version @Column(name = "OPTLOCK") public int getVersionNum() { return versionNum; } public void setVersionNum(int versionNum) { this.versionNum = versionNum; } }
错误日志:
Buildfile: /Users/othmanelmoulat/Documents/workspace/jbilling/src/build.xml init: [delete] Deleting directory /Users/othmanelmoulat/Documents/workspace/jbilling/src/build/test-results [mkdir] Created dir: /Users/othmanelmoulat/Documents/workspace/jbilling/src/build/test-results compile_api: [javac] /Users/othmanelmoulat/Documents/workspace/jbilling/src/build.xml:272: warning: 'includeantruntime' was not set,defaulting to build.sysclasspath=last; set to false for repeatable builds findRevision: jar_api: [jar] Building jar: /Users/othmanelmoulat/Documents/workspace/jbilling/src/build/deploy/jbilling_api.jar test-ws: [javac] /Users/othmanelmoulat/Documents/workspace/jbilling/src/build.xml:457: warning: 'includeantruntime' was not set,defaulting to build.sysclasspath=last; set to false for repeatable builds [javac] Compiling 7 source files to /Users/othmanelmoulat/Documents/workspace/jbilling/src/build/test [javac] com/sapienter/jbilling/server/user/db/CashDTO.class(com/sapienter/jbilling/server/user/db:CashDTO.class): warning: Cannot find annotation method 'name()' in type 'javax.persistence.TableGenerator': class file for javax.persistence.TableGenerator not found [javac] com/sapienter/jbilling/server/user/db/CashDTO.class(com/sapienter/jbilling/server/user/db:CashDTO.class): warning: Cannot find annotation method 'table()' in type 'javax.persistence.TableGenerator' [javac] com/sapienter/jbilling/server/user/db/CashDTO.class(com/sapienter/jbilling/server/user/db:CashDTO.class): warning: Cannot find annotation method 'pkColumnName()' in type 'javax.persistence.TableGenerator' [javac] com/sapienter/jbilling/server/user/db/CashDTO.class(com/sapienter/jbilling/server/user/db:CashDTO.class): warning: Cannot find annotation method 'valueColumnName()' in type 'javax.persistence.TableGenerator' [javac] com/sapienter/jbilling/server/user/db/CashDTO.class(com/sapienter/jbilling/server/user/db:CashDTO.class): warning: Cannot find annotation method 'pkColumnValue()' in type 'javax.persistence.TableGenerator' [javac] com/sapienter/jbilling/server/user/db/CashDTO.class(com/sapienter/jbilling/server/user/db:CashDTO.class): warning: Cannot find annotation method 'allocationSize()' in type 'javax.persistence.TableGenerator' [javac] com/sapienter/jbilling/server/user/db/CashDTO.class(com/sapienter/jbilling/server/user/db:CashDTO.class): warning: Cannot find annotation method 'name()' in type 'javax.persistence.Table': class file for javax.persistence.Table not found [javac] com/sapienter/jbilling/server/user/db/CashDTO.class(com/sapienter/jbilling/server/user/db:CashDTO.class): warning: Cannot find annotation method 'strategy()' in type 'javax.persistence.GeneratedValue': class file for javax.persistence.GeneratedValue not found [javac] An exception has occurred in the compiler (1.6.0_24). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you. [javac] com.sun.tools.javac.code.Symbol$CompletionFailure: class file for javax.persistence.GenerationType not found BUILD Failed /Users/othmanelmoulat/Documents/workspace/jbilling/src/build.xml:457: Compile Failed; see the compiler error output for details. Total time: 5 seconds
解决方法
听起来像javax.persistence的类不在test-ws Ant目标的javac任务的类路径中.