에 DiscriminatorValue을 얻는 방법을 우리가런타임
@Entity
@DiscriminatorValue("APS")
public class ApplicationProcessScheme extends ApplicationProcess {
}
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE) // optional annotation as this is default
@DiscriminatorColumn(name = "apType", discriminatorType = DiscriminatorType.STRING, length = 255)
@DiscriminatorValue("AP")
public class ApplicationProcess {
}
그리고 이것은 지금은 ApplicationProcess
이 DiscriminatorValue
AP or APS
의 경우 런타임에 알 필요가 다음과 같은 클래스. jpa가 자동으로 처리하므로이 값을 가져올 방법이 없습니다.
우리는 매개 변수로 ApplicationProcess
을 사용하는 메서드를 호출하고 어떤 유형인지 확인하기 위해 instanceof
을 사용하지 않으려합니다. 나는 우리가 매개 변수로 ApplicationProcess을 소요하는 방법을 요구하고있다
applicationProcess.getApType().equals("AP");
@Shervin : 당신은 할 수 있지만, 좋은 생각은 아닙니다. 당신의 논리는 그것에 의존하지 말아야합니다. . –
@ 파스칼 : 나는해야한다고 생각합니다. xhtml 쪽에서 나는 EL 표현식에서'instanceof'라고 말할 방법이 없다. (나는 생각한다). 그래서 나는 이것을 필요로할지 모른다. –
@Shervin : 그렇게 말하면서 유감이지만 디자인에 큰 결함이있는 것 같지만 **보기 **는 판별 자 값에 의존해서는 안됩니다 (비즈니스 코드는 사실이지만 보기). –