簡體   English   中英

Hibernate中的PostgreSQL網絡類型

[英]PostgreSQL network types in Hibernate

我想在Hibernate ORM中使用Mac地址(macaddr)的Postgresql網絡數據類型。 如何將macaddr類型映射到實體類屬性? 最好的方法是什么? 我從未在Hibernate中使用非標准SQL類型

謝謝

Mac地址是一個字符串。 如果這是Mac地址與其用戶之間的@OneToOne關系,那么您不必從簡單的字符串中創建實體類,只需將其作為字段添加到任何需要它的實體上,例如:

private String macAddress;

如果多個實體使用了相同的mac地址,並且您想重用該值(規范化),那么您就可以像這樣創建一個實體:

package com.acme.model;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class MacAddress implements Serializable {

    private static final long serialVersionUID = 1l;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String value;

    public Long getId() {
        return id;
    }

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

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }
}

我只是解決了這樣的問題,所以我成功地從DB postgresql 9插入並獲取行。 完全說明的解決方案是在休眠狀態下的該鏈接網絡中的postgres類型

由於從未對mac地址進行全面驗證,因此Java中沒有Standard-Type。 您可以使用

@ColumnTransformer(read="CAST(mac AS varchar)", write="CAST(? AS macaddr)") String 

而是將其讀/寫為String。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM