0
I need to make the connection between user and item for a login system
I’m stagnant in this error 2 days ago. I searched for forums and tutorials and could not get anything to help me.
If possible give me tips on how to do more efficient research on, I come here when I see no other option.
> WARN:
- 2020-10-29 12:36:13.074 WARN 38324 --- [ main] Configservletwebserverapplicationcontext : Exception encountered During context initialization - cancelling refresh Attempt: org.springframework.Beans.factory.Beancreationexception: Error creating bean with name 'usuarioRepository' defined in com.fcc.ads.turmad.nunesdaniel.appweb.repositories.UsuarioRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Cannot resolve Reference to bean 'jpaMappingContext' while Setting bean Property 'mappingContext'; nested Exception is org.springframework.Beans.factory.Beancreationexception: Error Creating bean with name 'jpaMappingContext': Invocation of init method failed; nested Exception is javax.persistence.Persistenceexception: [Persistenceunit: default] Unable to build Hibernate Sessionfactory; nested Exception is org.hibernate.Mappingexception: Could not determine type for: java.util.Set, at table: usuario, for Columns: [org.hibernate.Mapping.Column(items)]
- 2020-10-29 12:36:13.076 WARN 38324 --- [ main] o.s.b.f.support.DisposableBeanAdapter : Invocation of destroy method failed on bean with name 'entityManagerFactory': javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate Sessionfactory; nested Exception is org.hibernate.Mappingexception: Could not determine type for: java.util.Set, at table: usuario, for Columns: [org.hibernate.Mapping.Column(items)]
> LOGS:
- org.springframework.Beans.factory.Beancreationexception: Error creating bean with name 'usuarioRepository' defined in com.fcc.ads.turmad.nunesdaniel.appweb.repositories.UsuarioRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Cannot resolve Reference to bean 'jpaMappingContext' while Setting bean Property 'mappingContext'; nested Exception is org.springframework.Beans.factory.Beancreationexception: Error Creating bean with name 'jpaMappingContext': Invocation of init method failed; nested Exception is javax.persistence.Persistenceexception: [Persistenceunit: default] Unable to build Hibernate Sessionfactory; nested Exception is org.hibernate.Mappingexception: Could not determine type for: java.util.Set, at table: usuario, for Columns: [org.hibernate.Mapping.Column(items)]
- Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaMappingContext': Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested Exception is org.hibernate.Mappingexception: Could not determine type for: java.util.Set, at table: usuario, for Columns: [org.hibernate.Mapping.Column(items)]
- Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: usuario, for columns: [org.hibernate.mapping.Column(items)]
- Caused by: org.hibernate.Mappingexception: Could not determine type for: java.util.Set, at table: usuario, for Columns: [org.hibernate.Mapping.Column(items)]
> SQL SCRIPT:
create database app_web_estoque;
use app_web_estoque;
create table item (
id int not null auto_increment,
nome varchar(45),
marca varchar(45),
quantidade int,
preco double,
primary key (id)
);
create table usuario(
id int not null auto_increment,
nome varchar(45),
nomeacesso varchar(45),
senha varchar(45),
items int,
primary key (id)
);
create table usuario_item (
usuario_id int not null,
item_id int not null,
foreign key (usuario_id) references usuario(id),
foreign key (item_id) references item(id)
);
> ENTITIES:
User
@Entity
@Table(name="usuario")
public class Usuario implements Serializable {
private static final long serialVersionUID = 1L;
// outros atributos
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy="usuarios")
private Set items = new HashSet();
public Usuario() {
}
public Usuario(Long id, String nome, String nomeacesso, String senha) {
this.id = id;
this.nome = nome;
this.nomeacesso = nomeacesso;
this.senha = senha;
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getId() {
return id;
}
// getters e setters
public Set getItems() {
return items;
}
}
Item
@Entity
@Table(name="item")
public class Item implements Serializable {
private static final long serialVersionUID = 1L;
// outros atributos
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name="usuario_item",
joinColumns= {@JoinColumn(name="item_id")},
inverseJoinColumns= {@JoinColumn(name="usuario_id")})
private Set usuarios = new HashSet();
public Item() {
}
public Item(Long id, String nome, String marca, Integer quantidade, Double preco) {
this.id = id;
this.nome = nome;
this.marca = marca;
this.quantidade = quantidade;
this.preco = preco;
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getId() {
return id;
}
// getters e setters
public Set getUsuarios() {
return usuarios;
}
}
> DEPENDENCIES:
org.springframework.boot spring-boot-starter-data-jpa
org.springframework.boot spring-boot-starter-thymeleaf
org.springframework.boot spring-boot-starter-we
mysql mysql-connector-java runtime
> PROPERTIES:
spring.jpa.hibernate.ddl-auto=none spring.datasource.url=jdbc:mysql://localhost:3306/app_web_estoque?useTimezone=true&serverTimezone=UTC spring.datasource.username=admin spring.datasource.password=admin spring.jpa.open-in-view=false
I took the @Id annotation from get and put in the variable, the application runs but still does not receive the data in the database.
– nunes