小编Udo*_*eld的帖子

Hibernate - 避免LazyInitializationException - 从代理和会话中分离对象

MyObject myObject = repositoryHibernateImpl.getMyObjectFromDatabase();
//transaction is finished, and no, there is not an option to reopen it
ThirdPartyUtility.doStuffWithMyObjectType( myObject );
Run Code Online (Sandbox Code Playgroud)

此时你已经定义了什么是懒惰和急切加载,第三方实用程序将尝试调用你的"myObject"实例上的所有方法,这很好,因为你不想为懒惰返回任何东西加载属性,不幸的是它不返回null,它抛出一个LazyInitializationException.

发生这种情况是因为您实际上是在Hibernate的对象代理上调用该方法,并且它知道它没有获取该数据,并抛出异常.

甚至可以使用null值获取底层对象,以便getter只返回null,并且不会抛出异常?基本上分离对象,以便Hibernate完全不再了解它.延迟加载的对象的访问器必须返回null,它不能返回实际值,我们希望能够将实体转换为POJO,而不必创建看起来像实体的对象,并且必须重新映射所有值.

java hibernate lazy-loading

5
推荐指数
1
解决办法
2766
查看次数

为什么axistools-maven-plugin试图访问这个相对模式位置?

我们正在使用Axis 1.x进行Web服务项目,并且我在使Maven构建工作时遇到了问题.

我做了

 mvn clean generate-sources
Run Code Online (Sandbox Code Playgroud)

这触发了axistools-maven-plugin的wsdl2java目标.它最终会中止

[INFO] [axistools:wsdl2java {execution: generate-project}]
[INFO] about to add compile source root
[INFO] Processing wsdl: C:\Project\src\main\webapp\WEB-INF\wsdl\project.wsdl
Jan 24, 2011 11:24:58 AM org.apache.axis.utils.JavaUtils isAttachmentSupported
WARNING: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error generating Java code from WSDL.

Embedded error: Error running Axis
C:\Project\src\main\webapp\WEB-INF\project.xsd (The system cannot find the file specified)
Run Code Online (Sandbox Code Playgroud)

这是对的.该文件不存在.(并且-e不会产生额外的有用信息 - 这是一个LifecycleExecutionException,由MojoExecutionException引起,由AxisPluginException引起,由FileNotFoundException引起.)

关键是,它不应该搜索WEB-INF\project.xsd,它应该访问WEB-INF\wsdl\project.xsd.

这是WSDL所说的: …

java axis maven-2 wsdl2java

4
推荐指数
1
解决办法
8914
查看次数

如何为部署到WebSphere Application Server的应用程序创建生命周期侦听器?

我有一个部署到WebSphere的应用程序EAR.如何为每次启动应用程序时应调用一次性初始化代码的应用程序创建生命周期监听器?我需要有类似于WebLogic Server的类weblogic.application.ApplicationLifeCyleListenerweblogic.application.ApplicationLifecycleEvent.

java websphere java-ee

4
推荐指数
1
解决办法
3314
查看次数

SQLException:已用尽的结果集

我的JDBC代码有问题.这是相关代码:

/** method for checking password into the Oracle database */
public String CheckUserDB(String userToCheck) throws SQLException {
  String storedPassword;
  if (ds == null) throw new SQLException("No data source");      
  Connection conn = ds.getConnection();
  if (conn == null) throw new SQLException("No connection");      

  try {
    conn.setAutoCommit(false);
    boolean committed = false;
    try {
      PreparedStatement passwordQuery = conn.prepareStatement(
        "SELECT passwd from USERS WHERE userz = ?");
      passwordQuery.setString(1, userToCheck);

      ResultSet result = passwordQuery.executeQuery();

      result.next();

      storedPassword = result.getString("passwd");                          

      conn.commit();
      committed = true;
    } finally {
      if …
Run Code Online (Sandbox Code Playgroud)

java jdbc

3
推荐指数
1
解决办法
2万
查看次数

JPA自动BigDecimal转换

我们用MyEclipse生成jpa访问层.之后我们将生成模型和数据层访问服务.我们遇到了一些具有定义精度的字段的问题.

实体:

@Entity
public class TestEntity{
   @Column(name="DECTEST", scale = 3, precision = 13)
   BigDecimal decTest;

}
Run Code Online (Sandbox Code Playgroud)

现在我们创建一个bean并尝试保存它:

TestEntity te = new TestEntity();
te.setDecTest(new BigDecimal(1.2));

TestEntityService.save(te);
Run Code Online (Sandbox Code Playgroud)

我们收到以下错误:引起:com.ibm.db2.jcc.c.SqlException:[ibm] [db2] [jcc] [t4] [1037] [11190] BigDecimal转换期间发生异常.有关详细信息,请参阅附件Throwable.

Caused by: com.ibm.db2.jcc.a.a: [ibm][db2][jcc][converters][608][10994] Overflow occurred during numeric data type conversion of "1.1999999999999999555910790149937383830547332763671875".
at com.ibm.db2.jcc.a.e.a(e.java:61)
at com.ibm.db2.jcc.b.jb.a(jb.java:1772)
... 73 more
Run Code Online (Sandbox Code Playgroud)

问题似乎是我们的BigDecimals规模高于数据库中的规模.

一个有效的解决方法是:

TestEntity te = new TestEntity();

BigDecimal decTest = new BigDecimal(1.2);

te.setDecTest(decTest.setScale(3,RoundingMode.HALF_UP);

TestEntityService.save(te);
Run Code Online (Sandbox Code Playgroud)

通过此解决方法,我们将BigDecimals precicsion手动减少到数据库之一.

但是,如果数据模型发生变化,我们必须手动调整比例.有没有办法让我们的jpa/hibernate实现自动为我们进行转换?例如设置一个属性.无论如何,在创建bean的地方进行此操作将是错误的.

java db2 hibernate jpa bigdecimal

3
推荐指数
1
解决办法
2万
查看次数

asp.net中usercontrol的优缺点

有人可以告诉我是否应该尽可能多地在我的项目中使用用户控件?那么为什么,如果不是为什么不呢?

asp.net user-controls

2
推荐指数
1
解决办法
9020
查看次数

wsadmin:如何检查现有资源引用?

有了$AdminApp view <applicationName> -MapResRefToEJB它可以列出部署的EJB模块定义的资源引用。但是,该命令的结果是纯文本(另外可能是本地化的)。要提取该信息,必须解析此文本,这不是很方便。有没有办法使用 $AdminConfig 以结构化形式获取相同的信息(即应用程序的资源引用)?

websphere mbeans wsadmin

1
推荐指数
1
解决办法
2513
查看次数

JS date()返回错误的日期

我正在尝试在Javascript中格式化日期但是日期命令返回错误的日期,除非我使用toUTCString()哪个返回正确的日期,我尝试了不同的方式给日期赋予Date()函数以及两者getgetUTC函数来获取日期.我也试过不同的浏览器(Chrome,Safari,FireFox),如果我在Chrome的检查员中做到这一点,那么更令人困惑的是它的工作原理.我错过了一些明显的东西?

var d = new Date(1324141200000);

// return "Sat, 17 Dec 2011 17:00:00 GMT" - Correct!
alert(d.toUTCString());
// returns "6-11-2011" - Wrong! 
alert(d.getUTCDay() +'-'+ d.getUTCMonth() +'-'+ d.getUTCFullYear()); 
Run Code Online (Sandbox Code Playgroud)

javascript date

1
推荐指数
1
解决办法
1022
查看次数

Installin ADT for eclipse

当我尝试通过添加URL来安装ADT的ADT插件时:https: //dl-ssl.google.com/android/eclipse

我收到以下错误消息:无法读取存储库:https: //dl-ssl.google.com/android/eclipse/content.xml

eclipse adt eclipse-adt

1
推荐指数
1
解决办法
6062
查看次数

线程安全的OutputStreamWriter

java.io.OutputStreamWriter在JDK或某些第三方库中是否有任何线程安全的替代品?

java

1
推荐指数
1
解决办法
4058
查看次数

发送SQS消息时调用Lambda

我想在每次发送SQS消息时调用lambda.我尝试使用以下模式设置Cloudwatch事件的规则:

{
  "source": [
    "aws.sqs"
  ]
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,lambda永远不会被调用.我已经确保lambda的角色具有SQS策略.我怎样才能做到这一点?

amazon-sqs amazon-web-services amazon-cloudwatch aws-lambda

1
推荐指数
1
解决办法
987
查看次数

System.gc将在android(Andengine)中工作

我使用andengine开发游戏.在J2me游戏退出时,我将所有对象都设为null

即:

Image img;
Sprite s1;

When exit application , 

img=null;
s1=null;
Run Code Online (Sandbox Code Playgroud)

在android中我会使用System.gc()或者我需要在退出应用时将所有纹理,textureRegion和sprite设为make为null吗?

java android garbage-collection andengine

0
推荐指数
1
解决办法
1361
查看次数