当我尝试获取实体属性时,我有一个奇怪的问题:
Hibernate:
select
tarifklsk0_.ID as ID1_12_0_,
tarifklsk0_.FK_TARIF as FK_TARIF2_12_0_,
tarifservp1_.FK_TARIF as FK_TARIF2_11_1_,
tarifservp1_.ID as ID1_11_1_,
tarifservp1_.ID as ID1_11_2_,
tarifservp1_.FK_TARIF as FK_TARIF2_11_2_,
tarifservp1_.N1 as N3_11_2_
from
TR.TARIFXKLSK tarifklsk0_
left outer join
TR.TARIF_SERV_PROP tarifservp1_
on tarifklsk0_.FK_TARIF=tarifservp1_.FK_TARIF
where
tarifklsk0_.ID=?
Jun 13, 2016 7:38:26 AM org.hibernate.event.internal.DefaultLoadEventListener doOnLoad
INFO: HHH000327: Error performing load command : org.hibernate.property.access.spi.PropertyAccessException: Error accessing field [private java.lang.Integer TarifKlsk.fkTarif] by reflection for persistent property [TarifKlsk#fkTarif] : 1027303
Exception in thread "main" org.hibernate.property.access.spi.PropertyAccessException: Error accessing field [private java.lang.Integer TarifKlsk.fkTarif] by reflection for persistent …
Run Code Online (Sandbox Code Playgroud) 我在Spring Boot控制器中有下一个简单的请求方法:
@Autowired
private BillServ billServ;
...
@RequestMapping("/chrgcheck")
public String chrgCheck() {
Future<Result> fut = null;
fut = billServ.useCheck();
while (!fut.isDone()) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
if (fut.get().err ==0) {
return "OK";
} else {
return "ERROR";
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "ERROR";
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "ERROR";
}
} …
Run Code Online (Sandbox Code Playgroud) 我使用JAX-WS RI进行SOAP XML与其他服务的交换.我试图看到我的soap xml发送的完整错误日志,但由于截断消息而无法执行此操作:
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)
at org.apache.cxf.transpo
Message has been truncated
use com.sun.xml.ws.transport.http.HttpAdapter.dumpTreshold property to increase the amount of printed part of the message
--------------------
Run Code Online (Sandbox Code Playgroud)
我无法使用以下设置更正此问题:
System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true");
System.setProperty("com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump", "true");
System.setProperty("com.sun.xml.ws.transport.http.HttpAdapter.dump", "true");
System.setProperty("com.sun.xml.internal.ws.transport.http.HttpAdapter.dump", "true");
System.setProperty("com.sun.xml.internal.ws.transport.http.HttpAdapter.dumpTreshold", "999999");
Run Code Online (Sandbox Code Playgroud)
我的意思是dumpTreshold = 999999
任何帮助将不胜感激.
我无法使用休眠HQL轻松连接两个表:
Query query =em.createQuery("select t from Ulist t inner join UlistTp tp");
Run Code Online (Sandbox Code Playgroud)
我得到org.hibernate.exception.SQLGrammarException:
Hibernate: select ulist0_.id as id1_2_, ulist0_.ACTUAL as ACTUAL2_2_, ulist0_.CD as CD3_2_, ulist0_.DT1 as DT4_2_, ulist0_.DT2 as DT5_2_, ulist0_.NAME as NAME6_2_, ulist0_.S1 as S7_2_, ulist0_.FK_LISTTP as FK_LISTTP8_2_ from EXS.U_LIST ulist0_ inner join EXS.U_LISTTP ulisttp1_ on
10:32:46.562 [main] ERROR o.h.e.jdbc.spi.SqlExceptionHelper - ORA-00936: missing expression
Run Code Online (Sandbox Code Playgroud)
看到它后,我发现“ ON”子句为空!为什么?我认为,我的实体映射得很好:
@Entity
@Table(name = "U_LIST", schema="EXS")
public class Ulist implements java.io.Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_EXS")
@SequenceGenerator(name="SEQ_EXS", sequenceName="EXS.SEQ_U_LIST", allocationSize=1)
@Column(name = …
Run Code Online (Sandbox Code Playgroud) 我尝试通过以下方式使用 EntityManager 的“createStoredProcedureQuery”调用 Oracle 存储过程:
@Transactional(readOnly = false, propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED)
public void saveMeterVol(Meter meter, Double vol1, Chng chng, User user, Date dt1, Date dt2) {
StoredProcedureQuery qr = em.createStoredProcedureQuery("mt.P_METER.meter_vol_ins_upd_java");
qr.registerStoredProcedureParameter(1, Integer.class, ParameterMode.OUT);
qr.registerStoredProcedureParameter(2, Integer.class, ParameterMode.IN);
qr.registerStoredProcedureParameter(3, Integer.class, ParameterMode.IN);
qr.registerStoredProcedureParameter(4, Double.class, ParameterMode.IN);
qr.registerStoredProcedureParameter(5, Date.class, ParameterMode.IN);
qr.registerStoredProcedureParameter(6, Date.class, ParameterMode.IN);
qr.registerStoredProcedureParameter(7, String.class, ParameterMode.IN);
qr.setParameter(2, meter.getId());
qr.setParameter(3, chng.getId());
qr.setParameter(4, vol1);
qr.setParameter(5, dt1);
qr.setParameter(6, dt2);
qr.setParameter(7, user.getCd());
qr.execute();
}
Run Code Online (Sandbox Code Playgroud)
当我调用这个方法超过 300 次时,Oracle 陷入异常:ORA-01000: maximum open cursors exceeded
据我了解,Java 在调用我的过程后不会关闭 Oracle 游标,但我不明白为什么? …