Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
Hibernate 3和数据库中的空值出现问题_Hibernate_Null - Fatal编程技术网

Hibernate 3和数据库中的空值出现问题

Hibernate 3和数据库中的空值出现问题,hibernate,null,Hibernate,Null,我在Hibernate 3中遇到了一个奇怪的问题,它的表有空值。当我尝试从数据库中选择行时,出现以下异常: 为基元类型setter的属性分配了Null值 最常见的修复方法似乎是将基本值更改为对象,问题是它们已经是对象了。这是我的密码: package model; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.G

我在Hibernate 3中遇到了一个奇怪的问题,它的表有空值。当我尝试从数据库中选择行时,出现以下异常:

为基元类型setter的属性分配了Null值

最常见的修复方法似乎是将基本值更改为对象,问题是它们已经是对象了。这是我的密码:

package model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
private long pk;
private Date instant;
private String server;
private String ucid;
private String routingVdn;
private String originalCli;
private String originalDnis;
private String terminatingStation;
private String terminatingAgent;
private Date phase1Instant;
private Integer phase1InternalResultCode;
private Integer phase1ExternalResultCode;
private String phase1Message;
private Date phase2Instant;
private Integer phase2InternalResultCode;
private Integer phase2ExternalResultCode;
private String phase2Message;

@Id
@Column( name = "PK")
@GeneratedValue(strategy=GenerationType.AUTO)
public long getPk() {
    return pk;
}
public void setPk(long pk) {
    this.pk = pk;
}


@Column( name = "Instant")
@Temporal(TemporalType.TIMESTAMP)
public Date getInstant() {
    return instant;
}
public void setInstant(Date instant) {
    this.instant = instant;
}

@Column( name = "Ucid")
public String getUcid() {
    return ucid;
}
public void setUcid(String ucid) {
    this.ucid = ucid;
}

@Column( name = "Routing_Vdn")
public String getRoutingVdn() {
    return routingVdn;
}
public void setRoutingVdn(String routingVdn) {
    this.routingVdn = routingVdn;
}

@Column( name = "Original_Cli")
public String getOriginalCli() {
    return originalCli;
}
public void setOriginalCli(String originalCli) {
    this.originalCli = originalCli;
}

@Column( name = "Original_Dnis")
public String getOriginalDnis() {
    return originalDnis;
}
public void setOriginalDnis(String originalDnis) {
    this.originalDnis = originalDnis;
}

@Column( name = "Terminating_Station")
public String getTerminatingStation() {
    return terminatingStation;
}
public void setTerminatingStation(String terminatingStation) {
    this.terminatingStation = terminatingStation;
}

@Column( name = "Terminating_Agent")
public String getTerminatingAgent() {
    return terminatingAgent;
}
public void setTerminatingAgent(String terminatingAgent) {
    this.terminatingAgent = terminatingAgent;
}
@Column(name = "Phase_1_Instant")
@Temporal(TemporalType.TIMESTAMP)
public Date getPhase1Instant() {
    return phase1Instant;
}
public void setPhase1Instant(Date phase1Instant) {
    this.phase1Instant = phase1Instant;
}

@Column(name = "Phase_1_Internal_Result_Code")
public Integer getPhase1InternalResultCode() {
    return phase1InternalResultCode;
}
public void setPhase1InternalResultCode(Integer phase1InternalResultCode) {
    this.phase1InternalResultCode = phase1InternalResultCode;
}

@Column(name = "Phase_1_External_Result_Code")
public Integer getPhase1ExternalResultCode() {
    return phase1ExternalResultCode;
}
public void setPhase1ExternalResultCode(int phase1ExternalResultCode) {
    this.phase1ExternalResultCode = phase1ExternalResultCode;
}

@Column(name = "Phase_1_Message")
public String getPhase1Message() {
    return phase1Message;
}
public void setPhase1Message(String phase1Message) {
    this.phase1Message = phase1Message;
}

@Column(name = "Phase_2_Instant")
@Temporal(TemporalType.TIMESTAMP)
public Date getPhase2Instant() {
    return phase2Instant;
}
public void setPhase2Instant(Date phase2Instant) {
    this.phase2Instant = phase2Instant;
}

@Column(name = "Phase_2_Internal_Result_Code")
public Integer getPhase2InternalResultCode() {
    return phase2InternalResultCode;
}
public void setPhase2InternalResultCode(Integer phase2InternalResultCode) {
    this.phase2InternalResultCode = phase2InternalResultCode;
}

@Column(name = "Phase_2_External_Result_Code")
public Integer getPhase2ExternalResultCode() {
    return phase2ExternalResultCode;
}
public void setPhase2ExternalResultCode(Integer phase2ExternalResultCode) {
    this.phase2ExternalResultCode = phase2ExternalResultCode;
}

@Column(name = "Phase_2_Message")
public String getPhase2Message() {
    return phase2Message;
}
public void setPhase2Message(String phase2Message) {
    this.phase2Message = phase2Message;
}

@Column(name = "Server")
public String getServer() {
    return server;
}
public void setServer(String server) {
    this.server = server;
}   
}
“phase1InternalResultCode”的设置程序出现异常,该设置程序在数据库中为空


我在JBoss 5.1.0中运行这个程序,并使用Hibernate 3.6.0 Final

,我通过将注释放在变量上而不是getter上,成功地实现了这一点

虽然我知道这不是最佳实践,但这似乎效果不错