小编use*_*212的帖子

@GeneratedValue和@GenericGenerator之间的区别

有时候我会把它们放在一起,有时候只有它们......有时候它们似乎也是这样.

有什么不同?

这是三个例子.他们有什么不同的做法?为什么我不能只为所有这些使用@GeneratedValue?

例1

@Id
@GeneratedValue(generator="increment")
@GenericGenerator(name="increment", strategy = "increment") 
Long id;
Run Code Online (Sandbox Code Playgroud)

例2

@Id @GeneratedValue(strategy=GenerationType.SEQUENCE)
private int userId;
Run Code Online (Sandbox Code Playgroud)

例3

@ElementCollection
@JoinTable(name="Address",
   joinColumns=@JoinColumn(name="user_id")
)
@GenericGenerator(name="hilo-gen", strategy="hilo")
@CollectionId(columns = @Column(name="Address_id"), generator = "hilo-gen", type = @Type(type="long"))
Collection<Addr> listOfAddresses = new ArrayList<Addr>();
Run Code Online (Sandbox Code Playgroud)

java orm hibernate

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

Lombok 不适用于 IntelliJ 2020.3 社区版

我与 Lombok 一起工作没有任何问题,直到今天,我的 Intellij 自动更新到最新版本 2020.3 11 月 30 日构建。之后,不再识别任何 Lombok 注释。

我的 Java 项目仍然使用 Maven 从命令行构建,但项目中的注释完全被忽略,并且无法手动运行任何单元测试。

到目前为止我尝试过的事情:

  • 重新安装了 Lombok 插件
  • 重启 Intellij
  • 重新启动了笔记本电脑
  • 使缓存无效
  • 从github重新克隆项目
  • 检查注解处理器是否已启用

没有任何效果。可能发生了什么?关于我可以尝试做什么的任何想法?

java intellij-idea lombok

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

Spring不能在使用JUnit的单元测试中自动装配

我用JUnit测试以下DAO:

@Repository
public class MyDao {

    @Autowired
    private SessionFactory sessionFactory;

    // Other stuff here

}
Run Code Online (Sandbox Code Playgroud)

如您所见,sessionFactory使用Spring自动装配.当我运行测试时,sessionFactory保持为null并且我得到一个空指针异常.

这是Spring中的sessionFactory配置:

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configLocation">
        <value>classpath:hibernate.cfg.xml</value>
    </property>
    <property name="configurationClass">
        <value>org.hibernate.cfg.AnnotationConfiguration</value>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${jdbc.dialect}</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

怎么了?如何为单元测试启用自动装配?

更新:我不知道它是否是运行JUnit测试的唯一方法,但请注意我在Eclipse中运行它,右键单击测试文件并选择"run as" - >"JUnit test"

java junit spring

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

使用toString()与JSON.stringify()相比有什么区别?

在这两种情况下,我都会输出对象的内容:

alert(JSON.stringify(obj));
Run Code Online (Sandbox Code Playgroud)

要么

alert(obj.toString());
Run Code Online (Sandbox Code Playgroud)

所以...有什么区别?每个人的优点和缺点是什么?

是否有实际例子来说明差异?

javascript

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

Java中的字节和字符转换

如果我将一个角色转换为byte然后再回到char那个角色,那个角色会神秘地消失并成为别的东西.这怎么可能?

这是代码:

char a = 'È';       // line 1       
byte b = (byte)a;   // line 2       
char c = (char)b;   // line 3
System.out.println((char)c + " " + (int)c);
Run Code Online (Sandbox Code Playgroud)

一直到第2行一切都很好:

  • 在第1行,我可以在控制台中打印"a",它会显示"È".

  • 在第2行,我可以在控制台中打印"b",它会显示-56,即200,因为字节已签名.200是"È".所以它仍然很好.

但第3行有什么不对?"c"成为别的东西,程序打印出来? 65480.这是完全不同的东西.

我应该在第3行写什么才能得到正确的结果?

java unicode encoding utf-16

34
推荐指数
1
解决办法
12万
查看次数

差异webcontent和webapp

我在Eclipse中有两个Spring MVC项目,但Web内容处于不同的位置.

在一个应用程序中,它位于:

/WebContent
Run Code Online (Sandbox Code Playgroud)

在另一个应用程序下:

/src/main/webapp
Run Code Online (Sandbox Code Playgroud)

为什么?有什么不同?

有什么方法可以看出每个项目是如何创建的,以便以同样的方式创建一个新项目?

java spring web-applications spring-mvc

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

最好在try块内部使用synchronized块或在synchronized块内部使用try块?

例如,这更好吗?

try {
    synchronized (bean) {
        // Write something              
    }
} catch (InterruptedException e) {
    // Write something
}
Run Code Online (Sandbox Code Playgroud)

或者这更好:

synchronized (bean) {
    try {           
        // Write something              
    }
    catch (InterruptedException e) {
        // Write something
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道哪一个是最佳实践.显然考虑到我必须同步try块中的所有代码.我不是在谈论我只能在try中同步部分代码的情况(在这种情况下,我认为在try中包含synch块会更好).我的疑问是关于我要同步所有try块的情况.

java multithreading try-catch synchronized-block

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

OCJP考试模拟出错:真正创建了多少个对象?

在OCJP认证的模拟中,我发现了这个问题:

1. StringBuffer s1 = new StringBuffer("abc");
2. StringBuffer s2 = s1;
3. StringBuffer s3 = new StringBuffer("abc");

How many objects are created ?
Run Code Online (Sandbox Code Playgroud)

他们说正确的答案是4,因为他们说:

s1 is one object, s2 is another object, 
s3 is another object and "abc" is another String Object .
Run Code Online (Sandbox Code Playgroud)

但对我来说这是错误的,它应该是3,因为s1并且s2是同一个对象.你怎么看?

java

13
推荐指数
2
解决办法
467
查看次数

服务和DAO始终实现接口

在我看过的所有MVC项目中,"service"和"DAO"类总是实现自己的接口.但几乎所有时间,我都没有看到过这种界面有用的情况.

在这些情况下是否有任何理由使用接口?不在"服务"和"DAO"类中使用接口可能会导致什么后果?我无法想象会有什么后果.

java spring spring-mvc

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

MySQL选择范围内的坐标

我在我的数据库中有100 000个地址(即记录).

它们中的每一个都有自己的坐标(纬度和经度).

现在,考虑到用户的地理位置(纬度和经度),我想在地图上仅显示5英里范围内的地址(使用Google maps v3 API).

这意味着通常只需要在10万个地址中显示5个或6个地址.

一种解决方案可以是检索所有记录并在Java中应用公式来计算每个地址的距离,并仅在它在范围内时显示它.

这将浪费处理能力,因为当我只需要在地图上显示5或6个记录时,我需要检索所有记录.

如何在数据库端(MySQL)解决此问题,以便仅返回5英里范围内的地址?

java mysql google-maps-api-3

8
推荐指数
2
解决办法
4910
查看次数