0
MongoDB에 문서를 저장하고 싶습니다. @Document
을 선언하기 위해 Spring-Data-MongoDB를 사용하고 있습니다. 저에게 문제를 일으키는 한 가지 특별한 문서가 있습니다. 다음은 java.lang.Class
유형의 필드가있는 문제가있는 문서의 예입니다.클래스 형식의 @Document 필드를 가질 수 있습니까?
@Document
public class Value {
@Id
private Class<? extends I> clazz;
private Integer value;
...
}
내가받는 오류는 다음과 같습니다.
Caused by: java.lang.SecurityException: Can not make a java.lang.Class constructor accessible
나의 현재 솔루션은 String
대신 Class
의를 사용하는 것입니다. Class
유형의 필드를 사용하지 않는이 문제를 해결하는 데 도움을 주시면 감사하겠습니다.
'I'인터페이스를 구현하는 각 클래스마다 다른 값 (런타임 중에 변경할 수 있음)이 있기 때문에. 따라서 구현이 관련 값을 검색 할 수 있도록 값을 유지할 필요가 있습니다. – ChristopherZ
나는 본다. 그건 의미가 있습니다. 그러면 그 클래스 이름을 저장하기 만하면됩니다. 클래스를 저장한다고해서 실제로 버그가 발생하는 것은 아닙니다. – evanchooly
동의합니다. 그것이 실제로 저장되는 방법은 중요하지 않습니다. 코딩의 관점에서 볼 때,'Class'를 사용하는 것이 더 간단합니다. (예 :지도 조회는'map.put (clazz.getName(), value) '대신'map.put (clazz, value)'일 수 있습니다. 변환기 방법을 시도해 보겠습니다. 아마도 투명하게 작동 할 것입니다. – ChristopherZ