spring_reference/IV. Spring Boot features/28.3.1. Entity Classes.md

1.5 KiB
Raw Blame History

28.3.1. 实体类

传统上JPA实体类被定义到一个persistence.xml文件中。在Spring Boot中这个文件不是必需的并被'实体扫描'替代。默认情况下在你主main配置类被@EnableAutoConfiguration或@SpringBootApplication注解的类下的所有包都将被查找。

任何被@Entity@Embeddable或@MappedSuperclass注解的类都将被考虑。一个普通的实体类看起来像下面这样

package com.example.myapp.domain;

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

@Entity
public class City implements Serializable {

    @Id
    @GeneratedValue
    private Long id;

    @Column(nullable = false)
    private String name;

    @Column(nullable = false)
    private String state;

    // ... additional members, often include @OneToMany mappings

    protected City() {
        // no-args constructor required by JPA spec
        // this one is protected since it shouldn't be used directly
    }

    public City(String name, String state) {
        this.name = name;
        this.country = country;
    }

    public String getName() {
        return this.name;
    }

    public String getState() {
        return this.state;
    }
    // ... etc
}

:你可以使用@EntityScan注解自定义实体扫描路径。具体参考[Section 67.4, “Separate @Entity definitions from Spring configuration”](../IX. How-to guides/67.4. Separate @Entity definitions from Spring configuration.md)。