- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
@NamedQuery(
name = "ImageBankTag.findAllTags",
query = "select distinct tag from AdTag tag where tag.tag in (:tags) order by tag.tag"
)
})
@Data
@Entity
@Table(name = "image_bank_tags",uniqueConstraints = {@UniqueConstraint(columnNames={"tag"})})
public class ImageBankTag implements Serializable{
. . .
@NamedQuery(
name = "AdTag.findAllTags",
query = "select distinct tag from AdTag tag where tag.tag in (:tags) order by tag.tag"
)
})
@Data
@Entity
@Table(name = "admanager2_tags",uniqueConstraints = {@UniqueConstraint(columnNames={"tag"})})
public class AdTag implements Serializable{
Lure Of Chaos 28.01.2014 00:06 # 0
хм, а вот аннотацию @Data впервые встречаю...
wvxvw 28.01.2014 00:12 # 0
Но гораздо большая печаль этот Х.куэль: он такое зло заставляет создавать, что глядя на него нельзя не прослезиться. Например, чего только стоят джоины реализованые через where in (list of things from another table) - потому что временную таблицу не создать.
Вот нахера они изнасиловали Сиквел? Я не то, чтобы особый почитатель, но они ж его просто с говном смешали...
PS. @Data - из lombok это то же самое, что @Getter @Setter во все поля.
Lure Of Chaos 28.01.2014 00:22 # 0
а так да, генеренный скюл обычно ад адом получается.
Lure Of Chaos 28.01.2014 00:24 # 0
хотя, это сумасшествие сродни тому, что я делаю на Тапестри - аннотацийно-ориентированное программирование.
wvxvw 28.01.2014 00:31 # 0
Но вот, увы, нет подходящего для гк. экземпляра: просто никто до конца не дошел, чтобы ее воплотить, все мои предшественники здались где-то на 2/3 пути.
bormand 28.01.2014 05:31 # 0
А что она делает?
wvxvw 28.01.2014 09:28 # 0
Предполагается, что для того, чтобы реализовать эту аннотацию нужно:
1. Создать класс реализующий какой-то интерфейс валидатора.
2. В этом классе нужно реализовать метод по типу "а может ли этот класс быть вообще применим к этим объектам".
3. Если эта херня используется как аннотация к аргументу метода, метод обязан принимать дополнительный аргумент, в который складываются ошибки валидации.
Самое забавное начинается когда один и тот же объект может быть валидным в зависимости от контекста, в котором он используется, или когда нужна валидация нескольких аргументов, и не понятно где чьи ошибки ну и даже если заставить это работать, то предугадать какой же из валидаторов будет использоваться, если их есть более одного может оказаться очень нетривиально... И тем не менее, это какой-то говенный жабостандарт, а не просто злобный гений одного кретина. Самое сердце интырпрайза, так сказать.
VseGovnoOdinYaKrut 28.01.2014 12:35 # 0
wvxvw 28.01.2014 12:42 # 0
Расскажи мне, знаток жыср, как ты отличишь тут валидатор файлов картинок от валидатора файлов Микрософт Иксель?
VseGovnoOdinYaKrut 28.01.2014 12:52 # 0
wvxvw 28.01.2014 16:46 # 0
Я говорю про:
второй пример (с реализацией org.springframework.validation.Validator ).
VseGovnoOdinYaKrut 28.01.2014 17:20 # 0
И канаццкие зипкоды тоже не проблема при описании валидации в классе аннотациями, если валидатор над классом.