1

I am developing an app using Spring boot and mysql. Created two tables in mysql using workbench.ER diagram :

enter image description here

Here is my Entity classes generated using JPA tool in eclipse.

Transaction

import java.io.Serializable;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;

/**
 * The persistent class for the transactions database table.
 * 
 */
@Entity
@Table(name = "transactions")
@NamedQuery(name = "Transaction.findAll", query = "SELECT t FROM Transaction t")
public class Transaction implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @SequenceGenerator(name = "TRANSACTIONS_TRANID_GENERATOR")
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "TRANSACTIONS_TRANID_GENERATOR")
    @Column(name = "tran_id")
    private int tranId;

    @Column(name = "created_by")
    private String createdBy;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "created_on")
    private Date createdOn;

    @Column(name = "total_balance")
    private BigDecimal totalBalance;

    @Column(name = "tran_amount")
    private BigDecimal tranAmount;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "tran_date")
    private Date tranDate;

    @Column(name = "tran_type")
    private String tranType;

    @Column(name = "updated_by")
    private String updatedBy;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "updated_on")
    private Date updatedOn;

    // bi-directional many-to-one association to User
    /*
     * @ManyToOne
     * 
     * @JoinColumn(name = "user_id") private User user;
     */

    @ManyToOne
    @JoinColumn(name = "fk_userId", nullable = false)
    private User user;

}

User

import java.io.Serializable;
import javax.persistence.*;
import javax.transaction.Transaction;

import java.util.Date;
import java.util.List;

/**
 * The persistent class for the user database table.
 * 
 */
@Entity
@NamedQuery(name = "User.findAll", query = "SELECT u FROM User u")
public class User implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @SequenceGenerator(name = "USER_USERID_GENERATOR")
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "USER_USERID_GENERATOR")
    @Column(name = "user_id")
    private int userId;

    @Column(name = "created_by")
    private String createdBy;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "created_on")
    private Date createdOn;

    @Column(name = "updated_by")
    private String updatedBy;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "updated_on")
    private Date updatedOn;

    @Column(name = "user_first_name")
    private String userFirstName;

    @Column(name = "user_last_name")
    private String userLastName;

    @Column(name = "user_login_id")
    private String userLoginId;

    @Column(name = "user_password")
    private String userPassword;

    @Column(name = "user_phone")
    private String userPhone;

    // bi-directional many-to-one association to Transaction
    @OneToMany(fetch = FetchType.EAGER, mappedBy = "user")
    private List<Transaction> transactions;

When I run this application I am getting Use of @OneToMany or @ManyToMany targeting an unmapped class exception. I am not sure where I am going wrong. Tried related posts but no luck.

MonsterJava
  • 423
  • 7
  • 23
  • possible dublicate https://stackoverflow.com/questions/4956855/hibernate-problem-use-of-onetomany-or-manytomany-targeting-an-unmapped-clas – Mustafa Çil Aug 07 '19 at 19:04
  • nothing wrong with your mapping. i tested you it with the last versions of spring boot with mariadb and setted the property : spring.jpa.hibernate.ddl-auto=update. it created all the tables in database and the application started well without any error. – zpavel Aug 07 '19 at 19:22

1 Answers1

0

Your imports are wrong. Your @Entity is named Transaction, but you import javax.transaction.Transaction (a class from another package)

Lesiak
  • 22,088
  • 2
  • 41
  • 65