我有Spring启动应用程序
@SpringBootApplication
@EntityScan(basePackages = {"${scan.packages}"})
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
当从一个属性中读取多个实体扫描包时,该属性由逗号分隔,如下所示?
scan.packages = com.mycompany.model.package1, com.mycompany.model.package2
我遇到了这个异常:
java.lang.IllegalArgumentException:未知实体: com.mycompany.model.package2.Myclass
答案 0 :(得分:0)
您可以像这样扫描多个实体
@EntityScan(basePackages= {"scan.packages1","scan.packages2"})
答案 1 :(得分:0)
这应该有效
"use strict"
let cropType
, counter
let div = document.getElementById("crop")
let feedback = document.getElementById("feedback")
document.body.onmousemove = log
div.addEventListener("mousedown", startResizeImage, false)
function startResizeImage(event) {
log("startResize")
cropType = event.target.className
counter = 0
document.body.addEventListener("mousemove", resizeImage, false)
document.body.addEventListener("mouseup", stopResizeImage, {once: true})
}
function resizeImage(event) {
log ("drag (" + ++counter + ") " + cropType)
}
function stopResizeImage() {
log("stopResize")
document.body.removeEventListener("mousemove", resizeImage, false)
}
function log(data) {
data = data.type || data
let text = data+": "+event.clientX+", "+event.clientY
let lines = feedback.innerHTML.split("<br>")
if (data === "mousemove") {
text = text + "\n" + lines.pop()
} else {
text = lines.shift() + "\n" + text
}
feedback.innerText = text
}
答案 2 :(得分:0)
根据EntityScan annotation javadoc,有三种方法可以定义扫描实体的程序包:
value,basePackages的别名:@EntityScan( {"scan.packages1","scan.packages2"})
basePackages,value的别名:@EntityScan(basePackages= {"scan.packages1","scan.packages2"})
。
basePackagesClasses,类型安全版本:@EntityScan(basePackages=E.class}
。其中 E 是标记界面,仅用于在实体上加下划线。请参见下面的代码。也可以是注释。
interface E {
}
@Entity
public class Glass implements E {
// Typical code to be added here
}
或作为注释:
@Retention(RetentionPolicy.RUNTIME)
@interface E {
}
@Entity
@E
public class Glass implements E {
// Typical code to be added here
}
从我的角度来看,我将选择直接使用value或basePackageClasses。如果我更容易阅读,我会这样做,我认为这就是value的工作,而basePackageClasses引入了类型安全的附加好处,我可以看到这样做的多种原因。一切都取决于上下文。
答案 3 :(得分:0)
我遇到了同样的问题,并在 Spring Boot 问题跟踪器上发布了一个关于它的 issue。
答案是
<块引用>...如#25436所示,@EntityScan
在2.3中确实支持属性解决方案,所以,如果我们决定恢复支持,我们可能需要考虑如何处理多值属性。>
所以看起来某些 Spring Boot 版本确实支持它,但后来又放弃了支持……有关更多信息,请查看引用中链接的 Spring Boot 问题。
答案 4 :(得分:-1)
尝试:
@EntityScan(basePackages= {"${scan.packages1","scan.packages2}"})