Ошибка при сохранении объекта в базу данных Oracle

222
26 мая 2018, 18:40

У меня есть две таблицы USER_ и ORDER_. Создал классы:

@Entity
@Table(name = "USER_")
public class User {
    private long id;
    private String userName;
    private String password;
    private String country;
    private String userType;
    private List<Order> orders;
    public User() {
    }
    public User(String userName, String password, String country, String userType) {
        this.userName = userName;
        this.password = password;
        this.country = country;
        this.userType = userType;
    }
    public User(String userName, String password, String country, String userType, List<Order> orders) {
        this.userName = userName;
        this.password = password;
        this.country = country;
        this.userType = userType;
        this.orders = orders;
    }
    @Id
    @SequenceGenerator(name = "US_SQ", sequenceName = "USER_SEQ", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "US_SQ")
    @Column(name = "ID")
    public long getId() {
        return id;
    }
    @Column(name = "USER_NAME")
    public String getUserName() {
        return userName;
    }
    @Column(name = "PASSWORD")
    public String getPassword() {
        return password;
    }
    @Column(name = "COUNTRY")
    public String getCountry() {
        return country;
    }
    @Column(name = "USER_TYPE")
    public String getUserType() {
        return userType;
    }
    @OneToMany(targetEntity = Order.class, mappedBy = "user", fetch = FetchType.LAZY)
    public List<Order> getOrders() {
        return orders;
    }

и

@Entity
@Table(name = "ORDER_")
public class Order {
    private long id;
    private User user;
    private Room room;
    private Date dateFrom;
    private Date dateTo;
    private double moneyPaid;
    public Order() {
    }
    @Id
    @SequenceGenerator(name = "ORDER_SQ", sequenceName = "ORDER_SEQ", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ORDER_SQ")
    @Column(name = "ID")
    public long getId() {
        return id;
    }
    @ManyToOne
    @JoinColumn(name = "ID_USER")
    public User getUser() {
        return user;
    }
    @OneToOne(optional = false, cascade = CascadeType.ALL)
    @JoinColumn(name = "ID_ROOM")
    public Room getRoom() {
        return room;
    }
    @Temporal(TemporalType.DATE)
    @Column(name = "DATE_FROM")
    public Date getDateFrom() {
        return dateFrom;
    }
    @Temporal(TemporalType.DATE)
    @Column(name = "DATE_TO")
    public Date getDateTo() {
        return dateTo;
    }
    @Column(name = "MONEY_PAID")
    public double getMoneyPaid() {
        return moneyPaid;
    }

Так же есть класс GeneralDAO<T> в котором метод сохранения объекта в базу, не привожу его здесь, так как он вполне рабочий. В Demo создаю объект user и сохраняю его в базу userGeneralDAO.save(user1); и тут падает ошибка:

"C:\Program Files\Java\jdk1.8.0_111\bin\java" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.1\lib\idea_rt.jar=57967:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_111\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_111\jre\lib\rt.jar;C:\Users\Skorodielov\IdeaProjects\javajdbcgrom\target\classes;C:\Users\Skorodielov\.m2\repository\com\oracle\ojdbc7\12.1.0\ojdbc7-12.1.0.jar;C:\Users\Skorodielov\.m2\repository\org\hibernate\hibernate-core\5.2.16.Final\hibernate-core-5.2.16.Final.jar;C:\Users\Skorodielov\.m2\repository\org\jboss\logging\jboss-logging\3.3.1.Final\jboss-logging-3.3.1.Final.jar;C:\Users\Skorodielov\.m2\repository\org\hibernate\javax\persistence\hibernate-jpa-2.1-api\1.0.0.Final\hibernate-jpa-2.1-api-1.0.0.Final.jar;C:\Users\Skorodielov\.m2\repository\org\javassist\javassist\3.22.0-GA\javassist-3.22.0-GA.jar;C:\Users\Skorodielov\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\Skorodielov\.m2\repository\org\jboss\spec\javax\transaction\jboss-transaction-api_1.2_spec\1.0.1.Final\jboss-transaction-api_1.2_spec-1.0.1.Final.jar;C:\Users\Skorodielov\.m2\repository\org\jboss\jandex\2.0.3.Final\jandex-2.0.3.Final.jar;C:\Users\Skorodielov\.m2\repository\com\fasterxml\classmate\1.3.0\classmate-1.3.0.jar;C:\Users\Skorodielov\.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;C:\Users\Skorodielov\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.0.1.Final\hibernate-commons-annotations-5.0.1.Final.jar" hibernate_dz.dz_lesson4.demo.UserDemo
мая 18, 2018 10:23:04 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.2.16.Final}
мая 18, 2018 10:23:04 AM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
мая 18, 2018 10:23:04 AM org.hibernate.boot.jaxb.internal.stax.LocalXmlResourceResolver resolveEntity
WARN: HHH90000012: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/hibernate-configuration. Use namespace http://www.hibernate.org/dtd/hibernate-configuration instead.  Support for obsolete DTD/XSD namespaces may be removed at any time.
мая 18, 2018 10:23:05 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
мая 18, 2018 10:23:05 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
мая 18, 2018 10:23:05 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: using driver [oracle.jdbc.driver.OracleDriver] at URL [jdbc:oracle:thin:@gromcode-lesson.cjqbbseqr63c.eu-central-1.rds.amazonaws.com:1521:ORCL]
мая 18, 2018 10:23:05 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {user=main, password=****}
мая 18, 2018 10:23:05 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
мая 18, 2018 10:23:05 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init>
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
мая 18, 2018 10:23:07 AM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.Oracle10gDialect
Save is failed
Collection has neither generic type or OneToMany.targetEntity() defined: hibernate_dz.dz_lesson4.model.Hotel.rooms
Process finished with exit code -1

Подскажите как её исправить ? И в аннотации OneToMany параметр mappedBy = должно быть название таблицы или наименование колонки, которая является внешним ключом для связи таблиц USER_ и ORDER_ ?

Answer 1

mappedBy должен указывать на поле класса, с которым связывается этот класс.

А ошибка у вас указывает на поле rooms класса Hotel.

READ ALSO
Spring mvc не находит страницу - 404. Решено (вроде бы)

Spring mvc не находит страницу - 404. Решено (вроде бы)

уже не знаю что делатьВсе перепроверил

207
Сериализовать java-объекты в json-строку

Сериализовать java-объекты в json-строку

Хочу из контроллера вернуть json-строку List, но объекты в json сериализуются как пустые строкиВ результате получаю [{},{}]

168
Прокрутка активности вниз

Прокрутка активности вниз

На активности в TextView передается довольно большой объем текстаКогда его становится слишком много он уходит "вниз", но активность прокрутить...

185
Проблема со скроллом на смартфонах

Проблема со скроллом на смартфонах

При просмотре со смартфона тормозит прокрутка 3 и 7 экранов, в которых находится форма с десятью инпутамиСсылка на сайт http://продатьвелосипед

172