java - NetBeans 用来从数据库生成实体类的工具是什么?

标签 java jpa netbeans orm intellij-idea

当您按下 ctrl+n 并选择“Persistance -> Genarate entity classes from Database”时,可以在 Netbeans 7.2 中找到此工具。效果很好。

我想在 IntelliJ 中使用它,因为 IntelliJ 使用不同的东西(持久性选项卡中的选项“生成持久网络映射 -> 按数据库模式”)从模式生成实体。生成的类没有用,因为它们只包含基本类型

例如:

我的架构的一部分:

create table users (
  id int not null primary key,
  login varchar(64) not null unique,
  pass char(150) not null
);

create table groups (
  login varchar(64) not null,
  group_name varchar(64) not null,
  foreign key (login) references users (login)
);

IntelliJ 生成的部分实体:

@Entity
public class Users
{

    private Integer id;

    @javax.persistence.Column(name = "id")
    @Id
    public Integer getId()
    {
        return id;
    }

    public void setId(Integer id)
    {
        this.id = id;
    }

    private String login;

    @javax.persistence.Column(name = "login")
    @Basic
    public String getLogin()
    {
        return login;
    }

    public void setLogin(String login)
    {
        this.login = login;
    }

    private String pass;

    @javax.persistence.Column(name = "pass")
    @Basic
    public String getPass()
    {
        return pass;
    }

    public void setPass(String pass)
    {
        this.pass = pass;
    }

    @Override
    public boolean equals(Object o)
    {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Users users = (Users) o;

        if (id != null ? !id.equals(users.id) : users.id != null) return false;
        if (login != null ? !login.equals(users.login) : users.login != null) return false;
        if (pass != null ? !pass.equals(users.pass) : users.pass != null) return false;

        return true;
    }

    @Override
    public int hashCode()
    {
        int result = id != null ? id.hashCode() : 0;
        result = 31 * result + (login != null ? login.hashCode() : 0);
        result = 31 * result + (pass != null ? pass.hashCode() : 0);
        return result;
    }
}

NetBeans 生成的部分实体(我想在 IntelliJ 中使用的正确方式)

@Entity
@Table(name = "users", catalog = "soccerweb", schema = "public")
@NamedQueries({
    @NamedQuery(name = "Users.findAll", query = "SELECT u FROM Users u"),
    @NamedQuery(name = "Users.findById", query = "SELECT u FROM Users u WHERE u.id = :id"),
    @NamedQuery(name = "Users.findByLogin", query = "SELECT u FROM Users u WHERE u.login = :login"),
    @NamedQuery(name = "Users.findByPass", query = "SELECT u FROM Users u WHERE u.pass = :pass")})
public class Users implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "id")
    private Integer id;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 64)
    @Column(name = "login")
    private String login;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 150)
    @Column(name = "pass")
    private String pass;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "userId", fetch = FetchType.LAZY)
    private List<Achievements> achievementsList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "userId", fetch = FetchType.LAZY)
    private List<BlueTeam> blueTeamList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "userId", fetch = FetchType.LAZY)
    private List<RedTeam> redTeamList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "userId", fetch = FetchType.LAZY)
    private List<TournamentPlayers> tournamentPlayersList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "userId", fetch = FetchType.LAZY)
    private List<Stats> statsList;
    @OneToMany(mappedBy = "userId", fetch = FetchType.LAZY)
    private List<TournamentStats> tournamentStatsList;
    @OneToMany(mappedBy = "userId", fetch = FetchType.LAZY)
    private List<TournamentAchievements> tournamentAchievementsList; 

最佳答案

IDEA 还不支持它,我已经创建了一个新的功能请求,please vote .

您可能还对以下功能请求感兴趣:

  • IDEA-64709 JPA:生成字段访问权限
  • IDEA-67051创建通过 Hibernate 逆向工程对 DAO 对象进行逆向工程的能力

关于java - NetBeans 用来从数据库生成实体类的工具是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13766050/

相关文章:

java - 我正在尝试从android studio内部存储中的.txt文件中读取文本

java - 深度嵌套链中的 fragment 之间如何通信?

java - 使用 Spring Data JPA 将 Joda Money 的总和分成两列

mysql - 获取的关联中不允许使用 with 子句

java - 在 JPA 中映射复杂的 Map

java - 在 Netbeans 平台上构建图表工具

java - 在 TreeSet 中,基于不同属性的自定义对象的排序和唯一性

java - Eclipse警告 "Type safety: Unchecked cast"已得到递归解决方案

linux - 使用 readline 的多平台(Windows、MacOSX、Linux)应用程序出现问题

netbeans - javah.exe 不包含在 Windows JDK 8 中?