Java Groovy+;JPA&x2B;弹簧不工作
我有以下java类:Java Groovy+;JPA&x2B;弹簧不工作,java,spring,jpa,groovy,Java,Spring,Jpa,Groovy,我有以下java类: package domain; //imports @Entity public class User { @Id @GeneratedValue private long id; private String name; private String password; private String mail; //Getters, Setters and Constructors } 当我将文件扩展名更改为.gr
package domain;
//imports
@Entity
public class User {
@Id @GeneratedValue
private long id;
private String name;
private String password;
private String mail;
//Getters, Setters and Constructors
}
当我将文件扩展名更改为.groovy时,应用程序停止工作。事实上,它抛出了以下堆栈跟踪:
org.springframework.dao.InvalidDataAccessApiUsageException:
未知实体:域。用户;嵌套
例外是
java.lang.IllegalArgumentException:
未知实体:域。用户
我正在阅读,作者声明任何groovy类都可以取代java类,只要更改其扩展即可。那么为什么spring和JPA不认识我的groovy类呢
有人成功地使用过这种技术吗?Groovy(.Groovy)和Java(.Java)源文件都将编译成字节码(.class)文件。不需要重命名文件扩展名
如果您有groovy代码,则需要使用groovy编译器生成.class文件,就像.java文件将使用javac生成.class文件一样
这似乎不是JPA或Spring版。这里没有太多信息,所以是时候猜测了 Spring似乎找不到User.class文件。Groovy和Java编译器可能有不同的输出路径,Groovy输出路径可能不在类路径或部署集中
检查您的War,其中是否包含User.class?它在WEB-INF/classes/domain中吗?如果没有,那么Groovy输出文件夹似乎不在您的部署中。尝试更改Groovy输出文件夹以匹配您的Java输出文件夹。似乎可以编译它,因为使用User.Groovy的类可以干净地编译。据我所知,如果我从java迁移到groovy,我确实必须更改源文件扩展名。没错,Rob只是说更改扩展名是不相关的(尽管是必要的),因为Spring将使用编译后的结果(.class文件)。