hibernate连接oracle 11g的有关问题

在工程中我用hibernate配置了几个一对多映射,代码如下:
我遇到的问题是数据源为SQL的时候我的映射是没有问题的,工程运行都没有问题, javax.naming.NamingException。当换成了ORACLE的时候,所有的映射都会出问题
如 getEvoaApply()、getTkBranch()、getDgCompany() 都会报 空指针错误,请问各位大虾有没有遇到过类似的问题?怎么解决?
TkTask.java
@Entity
@Table(name = "EVOA_TASK_MAIN")
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
public class TkTask implements Serializable{
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private String taskid; //任务单号
@Column(name="ACCEPTID",insertable = false, updatable = false)
private String acceptid;//受理号
private String tasktype;//任务类型
private String sdtype; //是否为特殊审评程序
private String spesign; //品种特殊标志
private String adtsign; //授权标志
private String department; //审评部门

private Integer islasttask; //是否最后一张任务单

@OneToOne(cascade = { CascadeType.PERSIST, CascadeType.REMOVE }, fetch = FetchType.LAZY)
@JoinColumn(name = "ACCEPTID", referencedColumnName = "ACCEPTID")
private EvoaApply evoaApply;

@OneToMany(mappedBy = "tkTask", cascade = CascadeType.ALL)
@LazyCollection(LazyCollectionOption.TRUE)
private Set<DgCompany> dgCompany;

@OneToMany(mappedBy = "tkTask", cascade = CascadeType.ALL)
@LazyCollection(LazyCollectionOption.TRUE)
private Set<TkBranch> tkBranch;

public EvoaApply getEvoaApply() {
return evoaApply;
}
public void setEvoaApply(EvoaApply evoaApply) {
this.evoaApply = evoaApply;
}

public String getTaskid() {
return taskid;
}
public void setTaskid(String taskid) {
this.taskid = taskid;
}
public String getAcceptid() {
return acceptid;
}
public void setAcceptid(String acceptid) {
this.acceptid = acceptid;
}

public String getTasktype() {
return tasktype;
}
public void setTasktype(String tasktype) {
this.tasktype = tasktype;
}
public String getSdtype() {
return sdtype;
}
public void setSdtype(String sdtype) {
this.sdtype = sdtype;
}
public String getSpesign() {
return spesign;
}
public void setSpesign(String spesign) {
this.spesign = spesign;
}
public String getAdtsign() {
return adtsign;
}
public void setAdtsign(String adtsign) {
this.adtsign = adtsign;
}

public String getDepartment() {
if(department.indexOf("信息部") != -1){
return "";
}else{
return department;
}
}
public void setDepartment(String department) {
this.department = department;
}


public Integer getIslasttask() {
return islasttask;
}
public void setIslasttask(Integer islasttask) {
this.islasttask = islasttask;
}
public Set<DgCompany> getDgCompany() {
return dgCompany;
}
public void setDgCompany(Set<DgCompany> dgCompany) {
this.dgCompany = dgCompany;
}

public Set<TkBranch> getTkBranch() {
return tkBranch;
}
public void setTkBranch(Set<TkBranch> tkBranch) {
this.tkBranch = tkBranch;
}

}

---------------------------

TkBranch.java

public class TkBranch implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private String bhid;
private String taskid;
private String acceptid;



@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ACCEPTID",referencedColumnName="ACCEPTID")
private TkTask tkTask;

public String getBhid() {
return bhid;
}
public void setBhid(String bhid) {
this.bhid = bhid;
}
public String getTaskid() {
return taskid;
}
public void setTaskid(String taskid) {
this.taskid = taskid;
}
public String getAcceptid() {
return acceptid;
}
public void setAcceptid(String acceptid) {
this.acceptid = acceptid;
}

public TkTask getTkTask() {
return tkTask;
}
public void setTkTask(TkTask tkTask) {
this.tkTask = tkTask;
}

}

-------------------------------
DgCompany.java


@Entity
@Table(name = "EVOA_APPLY_COMPANY")
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
public class DgCompany implements Serializable {
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer acid;
private String acceptid;
private Integer seqcode;
private String companycn;


@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ACCEPTID", ORA-00933: SQL 命令未正确结束,referencedColumnName="ACCEPTID")
private TkTask tkTask;


public Integer getAcid() {
return acid;
}
public void setAcid(Integer acid) {
this.acid = acid;
}
public String getAcceptid() {
return acceptid;
}
public void setAcceptid(String acceptid) {
this.acceptid = acceptid;
}
public Integer getSeqcode() {
return seqcode;
}
public void setSeqcode(Integer seqcode) {
this.seqcode = seqcode;
}
public String getCompanycn() {
return companycn;
}
public void setCompanycn(String companycn) {
this.companycn = companycn;
}
public String getCompanyen() {
return companyen;
}

public TkTask getTkTask() {
return tkTask;
}
public void setTkTask(TkTask tkTask) {
this.tkTask = tkTask;
}

}

-------------------------
EvoaApply.java

@Entity
@Table(name = "EVOA_APPLY")
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
public class EvoaApply implements java.io.Serializable{

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private String acceptid;
private String registerkind;
private String drgnamecn;
private String drgnameeg;




public String getAcceptid() {
return acceptid;
}
public void setAcceptid(String acceptid) {
this.acceptid = acceptid;
}
public String getRegisterkind() {
return registerkind;
}
public void setRegisterkind(String registerkind) {
this.registerkind = registerkind;
}
public String getDrgnamecn() {
return drgnamecn;
}
public void setDrgnamecn(String drgnamecn) {
this.drgnamecn = drgnamecn;
}
public String getDrgnameeg() {
return drgnameeg;
}
public void setDrgnameeg(String drgnameeg) {
this.drgnameeg = drgnameeg;
}



}

------------------------------------------------------------------------------------------------------------------
问题补充:
zjhlht 写道
指定schema试试



我通过查询TkTask这个类是有SQL语句输出的,schema也是指定了的。


------解决方案--------------------------------------------------------
指定schema试试
------解决方案--------------------------------------------------------
@LazyCollection(LazyCollectionOption.TRUE)


@OneToOne(cascade = { CascadeType.PERSIST, CascadeType.REMOVE }, fetch = FetchType.LAZY)

如果session关闭本来就是空的,如果你要加载的话请去掉延迟加载,或者手动在session未关闭前设值
------解决方案--------------------------------------------------------
可参考:
eclipse连接oracle有关问题(hibernate)]   http://www.myexception.cn/java-web/20917.html


相关的主题文章:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值