小编Rom*_*man的帖子

我应该在哪里放置@Transactional注释:在接口定义或实现类?

代码中标题的问题:

@Transactional (readonly = true)
public interface FooService {
   void doSmth ();
}


public class FooServiceImpl implements FooService {
   ...
}
Run Code Online (Sandbox Code Playgroud)

VS

public interface FooService {
   void doSmth ();
}

@Transactional (readonly = true)
public class FooServiceImpl implements FooService {
   ...
}
Run Code Online (Sandbox Code Playgroud)

java spring annotations coding-style

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

为什么将Integer与int进行比较可以在Java中抛出NullPointerException?

观察这种情况让我非常困惑:

Integer i = null;
String str = null;

if (i == null) {   //Nothing happens
   ...                  
}
if (str == null) { //Nothing happens

}

if (i == 0) {  //NullPointerException
   ...
}
if (str == "0") { //Nothing happens
   ...
}
Run Code Online (Sandbox Code Playgroud)

因此,我认为首先执行装箱操作(即java尝试从中提取int值null),并且比较操作具有较低的优先级,这就是抛出异常的原因.

问题是:为什么在Java中以这种方式实现它?为什么拳击优先于比较参考?或者为什么他们没有null在拳击前实施验证?

目前,当NullPointerException使用包装的基元抛出它时看起来不一致,并且不会抛出真正的对象类型.

java boxing nullpointerexception

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

非规范化以何种方式提高数据库性能?

我听到很多关于非规范化的内容,这是为了提高某些应用程序的性能.但我从未试图做任何相关的事情.

所以,我只是好奇,归一化数据库中的哪些位置会使性能变差,换句话说,什么是非规范化原则?

如果我需要提高性能,我该如何使用这种技术?

database performance database-design normalization denormalization

58
推荐指数
4
解决办法
6万
查看次数

如何在JPA配置中设置默认架构名称?

我发现在hibernate配置文件中我们可以设置参数hibernate.default_schema:

<hibernate-configuration> 
   <session-factory>
      ...
      <property name="hibernate.default_schema">myschema</property>
      ...
   </session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)

现在我正在使用JPA,我想做同样的事情.否则我必须为schema每个@Table注释添加参数,如:

@Entity
@Table (name = "projectcategory", schema = "SCHEMANAME")
public class Category implements Serializable { ... }
Run Code Online (Sandbox Code Playgroud)

据我所知,这个参数应该在这部分配置的某个地方:

<bean id="domainEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="JiraManager"/>
    <property name="dataSource" ref="domainDataSource"/>
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="generateDdl" value="false"/>
            <property name="showSql" value="false"/>
            <property name="databasePlatform" value="${hibernate.dialect}"/>
        </bean>
    </property>
</bean>

<bean id="domainDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="driverClass" value="${db.driver}" />
    <property name="jdbcUrl" value="${datasource.url}" />
    <property name="user" value="${datasource.username}" />
    <property name="password" value="${datasource.password}" />
    <property name="initialPoolSize" value="5"/>
    <property …
Run Code Online (Sandbox Code Playgroud)

java configuration spring hibernate jpa

58
推荐指数
6
解决办法
15万
查看次数

JavaEE中的"Facet"是什么?

我不仅想知道什么是Facet,还有什么是Facet'在物理层面'(据我所知,它不是一个单独的罐子,而是什么?)?

我也想知道在部署之后它如何影响我的应用程序.我会解释一下真实的例子:

我有2个方面(由IDE创建):Spring Facet和Web Facet(用于jsf).我将它部署到Tomcat,我的应用程序运行正常.

然后我(通过IDE)添加了一个方面 - JPA Facet.我重新部署了应用程序,它仍然工作正常:)

所以,我只是好奇这是什么,为什么我们需要它?

java ide terminology facet java-ee

53
推荐指数
2
解决办法
5万
查看次数

最优雅的方式是将0改为1,反之亦然

做下一件事最优雅的方法是什么:

int i = oneOrZero;

if (i == 0) {
   i = 1;
} else {
   i = 0;
}
Run Code Online (Sandbox Code Playgroud)

您可以假设i只能有1或0的值.

java algorithm

52
推荐指数
5
解决办法
3万
查看次数

google的ImmutableList和Collections.unmodifiableList()有什么区别?

来自ImmutableList javadocs:

与Collections.unmodifiableList(java.util.List)不同,后者是一个仍然可以更改的单独集合的视图,ImmutableList的实例包含其自己的私有数据,并且永远不会更改.ImmutableList方便公共静态最终列表("常量列表"),还可以让您轻松地为调用者提供给您的类的列表的"防御性副本".

这是否意味着:

  1. 如果我有Dimension对象的ImmutableList(例如),那么我不能更改其中的任何Dimension对象?
  2. 如果我有Dimension对象的Collections.unmodifiableList(列表),那么我不仅可以添加或删除任何对象,但我可以更改它们(例如调用setDimension(width,height)方法)?

java collections comparison guava

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

为什么BigDecimal("5.50")不等于BigDecimal("5.5")以及如何解决这个问题?

实际上,我找到了可能的解决方案

//returns true
new BigDecimal("5.50").doubleValue() == new BigDecimal("5.5").doubleValue()
Run Code Online (Sandbox Code Playgroud)

当然,它可以通过类似的Math.abs (v1 - v2) < EPS方式进行改进,使比较更加健壮,但问题是这种技术是否可以接受或是否有更好的解决方案?

如果有人知道为什么java设计师决定以这种方式实现BigDecimal的平等,那么阅读它会很有趣.

java equals bigdecimal

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

与MySql的连接正在自动中止.如何正确配置Connector/J?

我从错误消息中读到了这个建议:

您应该考虑在应用程序中使用之前过期和/或测试连接有效性,增加服务器配置的客户端超时值,或使用Connector/J连接属性"autoReconnect = true"来避免此问题.

我正在使用Spring和JPA.我应该在哪里配置Connector/J?(在弹簧配置中persistence.xml,或在entityManagerFactory弹簧配置中,或在dateSource其他地方?)

java mysql spring jpa connection-timeout

48
推荐指数
2
解决办法
6万
查看次数

如何在xml文件中保存已解析和更改的DOM文档?

我有xml文件.我需要阅读它,进行一些更改并将新的更改版本写入一些新目的地.

我设法读取,分析和修补这个文件(DocumentBuilderFactory,DocumentBuilder,Document等).

但我找不到如何保存该文件的方法.有没有办法让它的纯文本视图(as String)或更好的方式?

java xml dom

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