• Java как наконец запустить Hibernate?

    Conacry
    @Conacry
    Здравствуйте.

    Для начала Вам необходимо иметь аннотированный класс, связанный с сущностью в базе данных. Для примера приведу из своего проекта:

    @Entity
    @Table(name = "users")
    public class User implements Serializable {
    
        @Id
        @Column(name = "user_id")
        @GeneratedValue(strategy = GenerationType.SEQUENCE,
                        generator = "users_user_id_seq")
        @SequenceGenerator(name = "users_user_id_seq",
                           sequenceName = "users_user_id_seq",
                           allocationSize = 1)
        private long userId;
    
        @Column(name = "name", nullable = false)
        private String name;
    
        @Column(name = "login", nullable = false, unique = true)
        private String login;
    
        @Column(name = "password", nullable = false)
        private String password;
    
        @Column(name = "email", nullable = false, unique = true)
        private String email;
    
        @Column(name = "enabled", nullable = false)
        private boolean isEnabled;
    
        @Column(name = "reg_date", nullable = false)
        private Date regDate;
    
        @ManyToOne(fetch = FetchType.EAGER)
        @JoinColumn(name = "authority_id", nullable = false)
        private Authority authority;
    
        public long getUserId() {
            return userId;
        }
    
        public void setUserId(long userId) {
            this.userId = userId;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getLogin() {
            return login;
        }
    
        public void setLogin(String login) {
            this.login = login;
        }
    
        @JsonIgnore
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public String getEmail() {
            return email;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        public boolean isEnabled() {
            return isEnabled;
        }
    
        public void setEnabled(boolean enabled) {
            isEnabled = enabled;
        }
    
        @JsonSerialize(using = SqlDateSerializer.class)
        public Date getRegDate() {
            return regDate;
        }
    
        public void setRegDate(Date regDate) {
            this.regDate = regDate;
        }
    
        public Authority getAuthority() {
            return authority;
        }
    
        public void setAuthority(Authority authority) {
            this.authority = authority;
        }
    
        @Override
        public String toString() {
    
            return  "User details" +
                    "Id = " + getUserId() + "\n" +
                    "Name = " + getName() + "\n" +
                    "Login = " + getLogin() + "\n" +
                    "Email = " + getEmail() + "\n" +
                    "Enabled = " + isEnabled() + "\n" +
                    "Role = " + getAuthority().getAuthority().name() + "\n" +
                    "Registration date = " + getRegDate();
        }


    Если Вам будут непонятны какие-либо вещи из класса сущности, напишите в комментарии, я отвечу.

    Далее при конфигурировании Hibernate вам нужно указывать не .addClass(MyClass.class), а configuration.addAnnotatedClass(Main.class).
    Ответ написан
    1 комментарий
  • Java: Чем заменить .replaceAll?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Ничем, надо просто включить голову и понять что у вас тут идет кошмарнейший оверхед по созданию куч строк что просто крайне медленно, кроме того каждый раз еще идет и компиляция регулярки что тоже дает оверхэд и воздь в гроб что все это еще и де то в компараторе что уже означает что это все дерается кошмарное число раз.
    Итого надо:
    1) Заранее единожды скомпилировать все регулярки.
    2) Подумать каким образом такие тяжелые операции оказались в компараторе.
    3) Возможно пересмотреть весь набор реулярок в 1 большую регулярку.
    Ответ написан
    3 комментария
  • Как получить кодировку сайта?

    Labunsky
    @Labunsky
    Я есть на хабре
    В тот момент, когда ты получаешь строку, она уже в любом случае хранится в джавовской UTF-16. Именно поэтому кодировка указывается для ридера до начала чтения.
    С уже считанной строкой, если она была прочитана не в той кодировке и "испорчена", а кодировка все неизвестна, ничего сделать нельзя.
    Для того, чтобы определить кодировку исходников сайта, который выгружаешь, нужно сначала получить его не в строковом виде, а массивом байт. После этого, можно работать с ним и уже определять кодировку либо с помощью своих костылей, либо уже существующих чужих.
    Ответ написан
    1 комментарий
  • Как получить массив строк разделенных регулярным выражением?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    String str = "text1 |это то, что я хочу извлечь| text";
    String[] arr = str.split("|");
    System.out.println(arr[1]);
    Ответ написан
    4 комментария