Я получаю следующую ошибку: Не управляемый тип: class com.uci.bank.entity.User.
Я пробовал EntityScan, ComponentScan, EnableJpaRepositories, packagesToScan ... почти все. Мне нужна помощь.
Вот мой код ниже. Я настроил все в соответствии с другими связанными сообщениями StackOverflow, но я все еще не могу заставить его работать. Я очень ценю помощь. Кстати, я использую Hibernate.
DatabaseConfig:
@Configuration
@EnableJpaRepositories("com.uci.bank.repository")
@EntityScan("com.uci.bank.entity")
public class DatabaseConfig {
@Value("${database.url}")
String url;
@Value("${database.user}")
String user;
@Value("${database.password}")
String password;
@Value("${database.driver}")
String driver;
@Value("${database.persistenceUnit}")
String persistenceUnit;
@Value("${hibernate.dialect}")
String dialect;
@Value("${hibernate.showSql}")
String showSql;
@Value("${hibernate.formatSql}")
String formatSql;
@Value("${hibernate.hbm2ddl}")
String hbm2ddl;
@Bean(name = "dataSource")
public org.springframework.jdbc.datasource.DriverManagerDataSource dataSource() {
org.springframework.jdbc.datasource.DriverManagerDataSource ds = new org.springframework.jdbc.datasource.DriverManagerDataSource();
ds.setDriverClassName(this.driver);
ds.setUrl(this.url);
ds.setUsername(this.user);
ds.setPassword(this.password);
return ds;
}
@Bean(name = "entityManagerFactory")
public org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean entityManagerFactory() {
org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean entityManagerFactory = new org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean();
entityManagerFactory.setDataSource(this.dataSource());
entityManagerFactory.setPersistenceUnitName(this.persistenceUnit);
entityManagerFactory.setPackagesToScan("com.uci.bank.entity");
entityManagerFactory.setJpaVendorAdapter(new org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter());
Map<String, String> jpaProperties = new HashMap<>();
jpaProperties.put("hibernate.dialect", this.dialect);
jpaProperties.put("hibernate.show_sql", this.showSql);
jpaProperties.put("hibernate.format_sql", this.formatSql);
jpaProperties.put("hibernate.hbm2ddl.auto", this.hbm2ddl);
entityManagerFactory.setJpaPropertyMap(jpaProperties);
return entityManagerFactory;
}
@Bean(name = "transactionManager")
public org.springframework.orm.jpa.JpaTransactionManager transactionManager() {
org.springframework.orm.jpa.JpaTransactionManager tm = new org.springframework.orm.jpa.JpaTransactionManager();
tm.setEntityManagerFactory(this.entityManagerFactory().getNativeEntityManagerFactory());
return tm;
}
}
Entity
@Builder
@Getter
@Setter
@Entity
@Table(name = "tb_users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", nullable = false)
private Long id;
@Column(name = "username", length = 127, nullable = false)
private String username;
@Column(name = "password", length = 127, nullable = false)
private String password;
@Column(name = "balance", nullable = false)
private double balance;
}
Repository
@Repository
public interface UserRepository extends JpaRepository<User, Long> { }
Main
@SpringBootApplication
@ComponentScan("com.uci.bank")
@PropertySource(value = "file:application.properties")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
application.properties
database.driver=org.sqlite.JDBC
database.url=jdbc:sqlite:bank.db
database.user=USER
database.password=PASSWORD
database.persistenceUnit=jpaData
hibernate.dialect=org.hibernate.dialect.SQLiteDialect
hibernate.showSql=true
hibernate.formatSql=true
hibernate.hbm2ddl=validate