hibernate连接oracle 11g的有关问题
来源:互联网 发布:java飞机大战源码 编辑:程序博客网 时间:2024/05/22 04:29
在工程中我用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;
}
}
------------------------------------------------------------------------------------------------------------------
问题补充:
我通过查询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
相关的主题文章:
我遇到的问题是数据源为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
相关的主题文章:
- android 照相机有关问题
- htmlunit2.8 访问www.google.com 抛出ScriptExceptio解决思路
- android的WebView解决方案
- hibernate连接oracle 11g的有关问题
- Hibernate 与 Oracle 11g 的问题
- hibernate 配置连接oracle 11g数据库时Dialect的选择问题求教
- 有关Oracle 11g
- oracle 的有关连接的问题
- hibernate连接oracle的问题
- oracle 11g 有关OEM的命令
- 有关Oracle最大连接数的问题
- Navicat V11 连接 oracle 11g 的问题
- Oracle 10g 有关表分区的问题?
- 有关Oracle 10g 更改字符集的问题
- 有关XP上完全删除Oracle 10g的问题
- sqlplus -oracle 11g 连接问题
- Hibernate配置Proxool以连接oracle 11g
- Myeclipse 10.0 + Hibernate 4.3.5 连接 Oracle 11G
- oracle express edition 11g hibernate连接配置
- 有关hibernate的连接池
- 神奇加蛋疼的Oracle 11g连接
- android 之DatePicker和TimePicker系列
- 如何查看Linux系统中逻辑和物理cpu的个数
- zoj1879
- eclipse里的python环境怎么导入urllib模块
- DB2 Architect Baseline
- hibernate连接oracle 11g的有关问题
- Effective C++读书笔记(24)
- hibernate怎么插入DB时间
- Android 去除标题栏
- 常用的命令笔记1
- 淘宝开放平台
- How to use cuda-gdb
- Ajax应用常见的HTTP ContentType设置
- 动态绑定事件插件—livequery