Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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持久化中的其他字段_Java_Mysql_Jpa_Spring Data Jpa - Fatal编程技术网

映射Java持久化中的其他字段

映射Java持久化中的其他字段,java,mysql,jpa,spring-data-jpa,Java,Mysql,Jpa,Spring Data Jpa,我使用Spring boot应用程序,该应用程序中有以下实体: @Entity public class IpAddress { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "IP_ADDR_ID") private Long id; @Column(name = "IP_ADDRESS") @NotEmpty private String

我使用Spring boot应用程序,该应用程序中有以下实体:

@Entity
public class IpAddress {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "IP_ADDR_ID")
    private Long id;

    @Column(name = "IP_ADDRESS")
    @NotEmpty
    private String address;

    @ManyToMany(cascade = CascadeType.ALL)
    @JoinTable(name = "IP_ADDR_STATUS",
            joinColumns = {
                    @JoinColumn(name = "IP_ADDRESS_ID", referencedColumnName = "IP_ADDR_ID")
            },
            inverseJoinColumns = {
                    @JoinColumn(name = "STATUS_ID", referencedColumnName = "S_ID")
            })
    private List<HttpInfoMessage> httpInfoMessages = new ArrayList<>();

    public IpAddress() {

    }

    public IpAddress(String address) {
        this.address = address;
    }

    public IpAddress(String address, List<HttpInfoMessage> httpInfoMessages) {
        this.address = address;
        this.httpInfoMessages = httpInfoMessages;
    }

    public Long getId() {
        return id;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public List<HttpInfoMessage> getHttpInfoMessages() {
        return httpInfoMessages;
    }

    public void setHttpInfoMessages(List<HttpInfoMessage> httpInfoMessages) {
        this.httpInfoMessages = httpInfoMessages;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof IpAddress)) return false;

        IpAddress ipAddress = (IpAddress) o;

        if (!getId().equals(ipAddress.getId())) return false;
        return getAddress().equals(ipAddress.getAddress());
    }

    @Override
    public int hashCode() {
        int result = getId().hashCode();
        result = 31 * result + getAddress().hashCode();
        return result;
    }

    @Override
    public String toString() {
        return "IpAddress{" +
                "id=" + id +
                ", address='" + address + '\'' +
                '}';
    }
}
然后将Http消息添加到
IP地址

IpAddress ip = new IpAddress("177.132.239.67", httpInfoMessages)
ip\u addr\u status
表中,我想从
address
statusId
status
字段中再添加3列


如何做到这一点?

如果没有其他方法成功,您可以将此联接表作为单独的实体创建。见公认答案:

如果希望在
IpAddress
的表中有更多的列,则可以向类
IpAddress
中添加字段!您需要删除
@manytomy
并创建一个连接实体。你是说在联接表中?因为你的描述完全无法理解。那么,元素是否被持久化并嵌入到联接表中?那就这么做吧。任何JPA文档都展示了如何使用嵌入元素持久保存集合SSO发布您尝试嵌入集合元素的内容?HttpInfoMessage必须
@embeddeble
作为初学者…非常好的问题,包括所有细节和图像。目前尚未解决。我在这里开始一个新问题:
List<HttpInfoMessage> httpInfoMessages = new ArrayList<>();

for(int i=1;i<=10;i++){ 

    HttpInfoMessage httpInfoMessage = new HttpInfoMessage(404L, "FORBIDDEN_WEB_PAGE");
    httpInfoMessages.add(httpInfoMessage);
}
IpAddress ip = new IpAddress("177.132.239.67", httpInfoMessages)