有没有办法将属性文件中的值导入类级别注释?
application.properties
native.query="Select * from Registration"
Registration.java
@NamedNativeQuery(name="RegQuery", resultSetMapping="RegResult",
query = "${native.query}"
)
@Entity
public class Registration {
...
}
在这种情况下, ${native.query}
被视为字符串。
EDIT1
我不能把它作为答案,因为它没有直接回答这个问题。不妨把这个放在这里作为参考。
如下面评论部分所述,Import value of properties file value to a class annotation
是不可能的。
由于这是一个本机查询,因此我将查询保留在属性文件中,以便于环境切换。
application.properties
native.query="Select * from Registration"
删除@NamedNativeQuery
Registration.java
@Entity
public class Registration {
...
}
使用@Value
导入属性。 (更好地在DAL上实现此查询)
RegistrationService.java
@Service
public class RegistrationService {
@Value("${native.query}")
private String regQuery;
@Autowired
private EntityManager em;
public getAllRegistered(){
Query q1 = em.createNativeQuery(regQuery, "RegResult");
}
}