Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用单独的Mysql表使用JPA实现枚举_Java_Mysql_Hibernate_Jpa_Enums - Fatal编程技术网

Java 如何使用单独的Mysql表使用JPA实现枚举

Java 如何使用单独的Mysql表使用JPA实现枚举,java,mysql,hibernate,jpa,enums,Java,Mysql,Hibernate,Jpa,Enums,我真的是一个新的使用JPA,但仍然不知道如何实现这一点,我会很高兴任何建议或解决方案 Mysql表: CREATE TABLE REAL_STATE_TYPES ( real_state_type_id INT(6) NOT NULL, real_state_type VARCHAR(50) NOT NULL, PRIMARY KEY (real_state_type_id) ); CREATE TABLE REAL_STATES ( address VARCHAR(30) NOT NULL,

我真的是一个新的使用JPA,但仍然不知道如何实现这一点,我会很高兴任何建议或解决方案

Mysql表:

CREATE TABLE REAL_STATE_TYPES (
real_state_type_id INT(6) NOT NULL,
real_state_type VARCHAR(50) NOT NULL,
PRIMARY KEY (real_state_type_id)
);

CREATE TABLE REAL_STATES (
address VARCHAR(30) NOT NULL,
admin_id VARCHAR(15) NOT NULL,
real_state_type_id INT(6) NOT NULL,
block VARCHAR(3) NOT NULL,
internal_id INT(5) NOT NULL,
PRIMARY KEY (address, block, internal_id),
FOREIGN KEY (real_state_type_id) REFERENCES REAL_STATE_TYPES (real_state_type_id),
FOREIGN KEY (admin_id) REFERENCES ADMINS (admin_id)
);
所以REAL_STATE的id是REAL_STATE_TYPE,如果我想保持这个表的关系,我如何通过JPA在java代码中映射它们

我的java类是:

import javax.persistence.Enumerated;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name= "real_state_types")
public class RealStateType implements Serializable{

    private static final long serialVersionUID = 5442745398170857199L;
    @Id
    @Column(name= "real_state_type_id ")
    private int realStateTypeId;
    @Column(name= "real_state_type")
    @Enumerated(EnumType.STRING)
    private RealStateEnum realStateType;
    @OneToOne(mappedBy = "realStateType", cascade = {CascadeType.ALL})
    private RealState realState;
以及:


为了让它工作,我相信你需要1。除去

@OneToOne(mappedBy = "realStateType", cascade = {CascadeType.ALL})
private RealState realState;
来自RealStateType。2.改变

@Column(name = "real_state_type_id")
private RealStateType realStateType;
进入

处于真实状态

否则,如果可能的话,我只需要删除RealStateType@Entity并使用

@Enumerated(EnumType.STRING)
@Column(name = "real_state_type", nullable = false)
private RealStateEnum realStateType;
真实的

@JoinColumn(name = "real_state_type_id")
private RealStateType realStateType;
@Enumerated(EnumType.STRING)
@Column(name = "real_state_type", nullable = false)
private RealStateEnum realStateType;