Вы также можете использовать JsonView Annotation, что делает его немного чище. Определите представления
public class View {
static class Public { }
static class ExtendedPublic extends Public { }
static class Private extends ExtendedPublic { }
}
Entity
@Entity
@Table("entities)
public class MyEntity {
@ID
private String name;
@Column(name="age")
private int age;
@JsonView(View.Private.class)
@Column(name="weight")
private int weight;
...getters and setters..
}
И в вашем контроллере покоя
@JsonView(View.Private.class)
@GetMapping
public MyEntity get(){
...
return myEntity;
}
@JsonView(View.Public.class)
@GetMapping("url")
public List getAll(){
...
return entities;
}
Уже объяснено здесь: https://stackoverflow.com/ а / 49207551/3005093
Проблема Турции связана с интернационализацией программного обеспечения или просто с его неправильным поведением в различных языковых культурах.
В разных странах существуют разные стандарты дат написания (14.04.2008 в Турции и 4/14 / 2008 в США), числа (то есть 123,45 в Польше и 123,45 в США) и правила о верхнем регистре символов (как в Турции с буквами i, I и ı).
Как указал Джефф Мозер ниже проблема была названа турецким пользователем, который первым обнаружил ошибку в функции ToUpper ()
. Более подробно в комментариях ниже.
Однако проблема не ограничивается Турцией и конвертированием строк.
В Польше и многих других странах даты и цифры также пишутся по-разному. и проблемы, связанные с интерпретацией даты или чисел, также называются проблема Турции .
ссылки из Google поиск Турции Проблема с деталями уже дана:
Забудьте о Турции, в США это даже не пройдет. Вам нужно сравнение без учета регистра. Итак, вы пытаетесь:
String.Compare (строка, строка, bool ignoreCase):
....
Пройдет ли кто-нибудь из них «Тест Турции?»
Не случайно!
Причина: Вы столкнулись с проблемой «Турецкий I».
Как Обсуждаемое многими и многими людьми, «я» на турецком ведет себя иначе, чем на большинстве языков. В соответствии со стандартом Unicode наша строчная буква «i» становится «İ» (U + 0130 «Латинская заглавная буква I с точкой выше»), когда она перемещается в верхний регистр. Точно так же наш верхний регистр «I» становится «ı» (U + 0131 «латинская строчная буква I без точек»), когда он перемещается в нижний регистр.
Так называемый «тест Турции» связан с интернационализацией программного обеспечения. Одной из проблем глобализации / интернационализации является то, что форматы даты и времени в разных культурах могут различаться на многих уровнях (порядок день / месяц / год, разделитель даты и т. Д.).
Кроме того, в Турции существуют некоторые специальные правила для капитализации, которые могут привести к проблемы. Например, турецкий символ «i» является распространенной проблемой для многих программ, которые используют его неправильно.
Ссылка, предоставленная @Luixv, дает исчерпывающее описание проблемы.
Суть в том, что если вы собираетесь протестировать свой код только в одной неанглийской локали, протестируйте ее на турецком языке.
Это потому, что у турецкого языка есть экземпляры большинства крайних случаев, с которыми вы, вероятно, столкнетесь при локализации, включая «необычные» строки формата и нестандартные символы (такие как различные правила использования заглавных букв для i).
У Джеффа Этвуда есть статья в блоге, посвященная той же теме, и это первое место, где я с ней столкнулся. в общем, попытка запустить приложение под турецкой локалью - отличный тест из вашего I18n.
вот джеффс статья