Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.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/2/spring/11.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 Groovy+;JPA&x2B;弹簧不工作_Java_Spring_Jpa_Groovy - Fatal编程技术网

Java Groovy+;JPA&x2B;弹簧不工作

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

我有以下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
}
当我将文件扩展名更改为.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文件)。