Java Crudepository findAll发现为空
我似乎无法让hibernate从mySQL获取任何信息。我到处都读过书,我觉得我在做正确的事情,显然我没有,但我的大脑已经崩溃了,试图理解我搞砸了什么 主要内容: 控制器:Java Crudepository findAll发现为空,java,mysql,hibernate,spring-boot,Java,Mysql,Hibernate,Spring Boot,我似乎无法让hibernate从mySQL获取任何信息。我到处都读过书,我觉得我在做正确的事情,显然我没有,但我的大脑已经崩溃了,试图理解我搞砸了什么 主要内容: 控制器: @Controller public class CustomerController { private CustomerDAO customerDAO; @Autowired public void setCustomerDAO(CustomerDAO customerDAO) {
@Controller
public class CustomerController {
private CustomerDAO customerDAO;
@Autowired
public void setCustomerDAO(CustomerDAO customerDAO) {
this.customerDAO = customerDAO;
}
@RequestMapping("/")
public String listCustomers(Model model){
long test = customerDAO.count();
model.addAttribute("answer", test);
List<Customer> customers = customerDAO.findAll();
model.addAttribute("customers", customers);
return "home";
}
}
实体:
@Entity
@Table(name = "customer")
public class Customer implements Serializable {
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
private int id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "email")
private String email;
public Customer(){}
@Override
public String toString() {
return "Customer{" +
"id=" + id +
", firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
", email='" + email + '\'' +
'}';
}
public Customer(String firstName, String lastName, String email){
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
道:
我知道现在回复有点晚,但这个问题对谷歌来说是友好的
您不需要在
CustomerDAO
内部声明findAll()
。界面crudepository
已经执行了此操作。除此之外,我建议改为实现JpaRepository
repository(它扩展了crudepository
本身,并免费为您提供了更多方便的方法。在DAO下的crudepository
类在哪里?@mosean:从哪里阅读此代码?请尝试specyfing entitymanager.packagesToScan=com.luv2code.entity..而不使用客户。)end@MaciejKowalski只是试过了,没用,我收到了pty括号[]
spring.datasource.url = jdbc:mysql://localhost:3306/web_customer_tracker?useSSL=false
spring.datasource.username=root
spring.datasource.password=metalgear3
spring.datasouce.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.show-sql=true
spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQL55Dialect
spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext
entitymanager.packagesToScan = com.luv2code.entity.Customer
@Entity
@Table(name = "customer")
public class Customer implements Serializable {
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
private int id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "email")
private String email;
public Customer(){}
@Override
public String toString() {
return "Customer{" +
"id=" + id +
", firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
", email='" + email + '\'' +
'}';
}
public Customer(String firstName, String lastName, String email){
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
@Repository("CustomerDAO")
@Transactional
public interface CustomerDAO extends CrudRepository<Customer, Integer> {
public List<Customer> findAll();
public long count();
}
CREATE DATABASE IF NOT EXISTS `web_customer_tracker`;
USE `web_customer_tracker`;
DROP TABLE IF EXISTS `customer`;
CREATE TABLE `customer`(
`id` INT(11) NOT NULL auto_increment,
`first_name` VARCHAR(45) DEFAULT NULL,
`last_name` VARCHAR(45)DEFAULT NULL,
`email` VARCHAR(45) DEFAULT NULL,
PRIMARY KEY(`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 CHARSET=latin1;
INSERT INTO `customer` VALUES
(1, 'David', 'Adams', 'david@luv2code.com'),
(2, 'John', 'Die', 'john@luv2code.com'),
(3, 'Ajay', 'Rao', 'ajay@luv2code.com'),
(4, 'Mary', 'Publiidc', 'mary@luv2code.com'),
(5, 'Maxwell', 'Dixon', 'maxwell@luv2code.com');