1. Java / Говнокод #7419

    +76

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    @Column(name = "IS_DEFAULT", unique = false, nullable = true, insertable = true, updatable = true, length = 1)
    private String isDefault;
    
    ......
    
    if (b.getIsDefault().equals("N"))...

    Created by: Sudharsan Veluru

    Запостил: artureg, 02 Августа 2011

    Комментарии (17) RSS

    • еще бы добавить:
      trueable = false, falseable = true, zero = 1
      Ответить
    • налицо злоупотребление аннотациями
      Ответить
      • не в этом суть :)
        Ответить
        • СУТЬ, конечно, в том, что выбран неподходящий тип, но это неинтересно )
          Ответить
          • аннотации это уже не смешно :)
            Ответить
          • Похоже, что БД - Oracle. Там нет ни перечислений, ни булеанов, и их часто имитируют varchar2 с констрэйнтом length=1 и ограничением на принимаемые значения. Если использовать char, то JDBC будет при запросах конвертить переданные символы в числа, что Oracle очень огорчит. Поэтому, возможно, String и к месту.
            Ответить
    • "Явное лучше, чем неявное" (c)
      Ответить
    • По моему, самое большое говно здесь в том, что
      b.getIsDefault().equals("N")
      вместо
      "N".equals(b.getIsDefault())
      при условии
      nullable = true
      Ну и метод
      getIsDefault()
      доставляет.
      Ответить
      • собсна, это и хотел показать :)
        ну и у меня вызывает отторжение сама идея проверять булеан через equals
        Ответить
      • getIsDefault() сформирован по всем правилам аксессоров (xxx -> getXxx, setXxx)
        Ответить
        • Это понятно, звучит просто криво ) Можно, конечно, было извернуться и добавить
          boolean isDefault() { return "N".equals(isDefault); }
          , но и тут есть свои проблемы... Кругом засада, короче.
          Ответить

    Добавить комментарий