Возможно ли определить различные проекции по субтипам и данным Spring REST использовать наиболее конкретную проекцию типа класса?Использование различных прогнозов для каждого подтипа объекта
Этот вопрос был выставлен по вопросу JIRA DATAREST-739, а также существует комманда слияния, но это не отображается на официальном changelog, а также я не нашел никакой документации или руководства по ее решению с текущими выпусками.
Прецедент образец используется в вопросе:
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="type")
@JsonTypeInfo(use=JsonTypeInfo.Id.NAME, include=JsonTypeInfo.As.PROPERTY, property="type")
public abstract class Message implements Identifiable<UUID> { ... }
@Entity
@DiscriminatorValue("TEXT")
@JsonTypeName("TEXT")
public class TextMessage extends Message { ... }
@Entity
@DiscriminatorValue("TODO")
@JsonTypeName("TODO")
public class TodoMessage extends Message { Boolean isDone; }
@Projection(name = "summary", types = TodoMessage.class)
public class TodoMessageSummary { Boolean getIsDone(); }
@Projection(name = "summary", types = TextMessage.class)
public class TextMessageSummary { ... }
public interface MessageRepo extends JpaRepository<Message, UUID> { ... }
@RepositoryRestResource(excerptProjection = TodoMessageSummary.class)
public interface TodoMessageRepo extends JpaRepository<Message, UUID> { ... }
@RepositoryRestResource(excerptProjection = TextMessageSummary.class)
public interface TextMessageRepo extends JpaRepository<TextMessage, UUID> { ... }
Первый вопрос: как определить проекцию отрывок для MessageRepo использовать TodoMessageSummary для TodoMessage лиц и TextMessageSummary для Отпрака?
Вторая проблема: как определить проекцию для другого объекта с полем сообщения? Скажем, у вас есть следующие:
@Projection(name = "summary", types = Dashboard.class)
public class DashboardSummary {
List<Message> getMessages();
}
РЕШИТЬ:
Спасибо за ваш ответ, мои проблемы было то, что мне нужны прогнозы подтипов на пользовательском сопоставлении контроллера. Я, наконец, решил это и во время процесса. Позвольте мне получить знания по другим полезным вопросам – pdorgambide