【问题标题】:Spring-boot data entitySpring-boot 数据实体
【发布时间】:2015-12-22 20:07:53
【问题描述】:

传统上,JPA“实体”类在 persistence.xml 文件中指定。对于 Spring Boot,这个文件不是必需的,而是使用“实体扫描”

@Entity
public class Hotel implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue
private Long id;

@ManyToOne(optional = false)
@NaturalId
private City city;

@Column(nullable = false)
@NaturalId
private String name;

@Column(nullable = false)
private String address;

@Column(nullable = false)
private String zip;

@OneToMany(fetch = FetchType.LAZY, mappedBy = "hotel")
private Set<Review> reviews;

protected Hotel() {
}

public Hotel(City city, String name) {
    this.city = city;
    this.name = name;
}

public City getCity() {
    return this.city;
}

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

public String getAddress() {
    return this.address;
}

public String getZip() {
    return this.zip;
}
}

如何通过工具创建 Spring Boot 实体?我不想写实体手册。

【问题讨论】:

  • 您可以使用 Lombok 项目 projectlombok.org/features/GetterSetter.html 中的 @Getter@Setter(以及更多功能)释放大量代码
  • 没有像 Spring Boot Entity 这样的东西,它只是一个普通的 JPA 实体,就像任何其他实体一样......而且传统上你不必在persistence.xml 你也可以让 JPA 扫描它们(这也是 spring 在配置 EntityManager 时使用的)。所以默认情况下 Spring (Boot) 所做的一切都已经存在(但更容易)。

标签: spring-boot spring-data-jpa


【解决方案1】:

首先,我们不是在谈论 Spring 实体。但是我们创建了 Java Persistence API 模型;带注释的 POJO。进一步阅读:http://www.oracle.com/technetwork/articles/java/jpa-137156.html

如果您想从数据库或数据库 ERM 创建实体,您可以使用 Eclipse Spring Tool Suite (STS) 为您完成这项工作。

Spring STS 在 Eclipse JPA 透视图中包含一个“ENTITY FROM TABLE 向导”。这是一个很棒的工具,因为您可以从 DB 生成大量实体。

  1. 转到 Eclipse STS -> 窗口 -> 透视图 -> 打开透视图 -> JPA (如果你没有找到直接搜索)

  2. 如果您还没有数据库连接,请创建一个;这样做打开 Eclipse -> 窗口 -> 显示视图 -> 数据源资源管理器 然后去那里添加一个新的连接。

  3. 现在您可以在您的项目上进行选择(或创建一个新的 JPA 项目)并使用 File -> New -> JPA From Table(或 orm,如果您有一个 :))

毕竟,您将看到创建完整 POJO 注释类所需的一切。该工具将节省您的一整天:)

创建完成后,请查看所选项目的生成包中的类并修改任何内容以满足您的需要。有时,生成器会做很多我们不需要的事情,因此请注意这一点。

【讨论】:

    【解决方案2】:

    为此,您可以实现自定义符号,我认为这不是最佳做法,如果您需要此解决方案,请使用 @notNull 之类的注释来构建 JSONObject

    【讨论】:

      猜你喜欢
      • 2018-06-03
      • 2020-07-04
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      • 2019-03-18
      • 2019-01-04
      • 2019-02-14
      • 1970-01-01
      相关资源
      最近更新 更多