小编che*_*ine的帖子

没有Hibernate会话绑定到线程,配置不允许在这里创建非事务性的

这个错误是什么?" 没有Hibernate会话绑定到线程,配置不允许在这里创建非事务性的 ".我的spring配置文件看起来像这样.

<bean id="jndiDataSource"
    class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
        <value>java:/devDS</value>
    </property>
</bean>
<bean id="stsaDBFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="jndiDataSource" />
    <property name="annotatedClasses">
        <list>
            <value>xx.yy.zz.User</value>
            <value>xx.yy.UserResponse</value>

        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.hbmddl.auto">create</prop>
        </props>
    </property>
</bean>

<!-- ################################### Aspects ################################################## -->

<bean id="txManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory">
        <ref local="stsaDBFactory" />
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

当我使用junit在容器外测试它们时,所有DAO测试都通过了.当我将它作为门户应用程序部署在jBoss中时,我得到了这个例外.如果我删除门户特定配置并使其成为一个简单的Web应用程序并将其部署在jboss.Any想法它也工作正常?

java hibernate

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

正确的实施方式等于合同

我有一个名为User的域对象.用户的属性包括ssoId,name,email,createdBy,createdDate和userRole.其中,ssoId必须是唯一的,因为没有两个用户可以拥有相同的sso id.所以我的equals方法检查sso id并返回true或false.

@Override public boolean equals(Object o) {
    if (!(o instanceof User))
      return false;
    return user.getSsoId().equals((User)o.getSsoId());
}
Run Code Online (Sandbox Code Playgroud)

我觉得这是一个不正确的实现,尽管就业务规则而言是正确的.对于具有相同sso id但具有不同的名称或电子邮件或两者的值的两个对象,上述实现将返回true.我应该更改我的平等合同以检查所有字段的相等性吗?你的建议是什么?

java

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

关于Java的int的基本问题

为什么下面的代码打印2147483647,实际值是2147483648?

    i = (int)Math.pow(2,31) ;
    System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

我知道int可以容纳的最大正值是2147483647.那么为什么像这样的代码自动换向负面并打印-2147483648?

i = (int)Math.pow(2,31) +1 ;
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

我是Integer类型.如果第二个代码示例(添加两个整数)如果结果超出正范围可以包装到负侧,为什么第一个样本不能包装?还有,

i = 2147483648 +1 ;
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

这与第二个代码示例非常相似会抛出编译错误,说第一个文字超出整数范围?我的问题是,根据第二个代码示例,为什么第一个和第三个样本不能自动换行到另一个?

java

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

即使是本地文件,跨域ajax也会失败

我有一个带有ajax函数的本地 html文件,试图从x.com中提取xml内容.运行时的文件仅适用于IE,并且在firefox和safari浏览器上失败.当然,这可能是因为同源政策.但是,我从某人那里听说,对于使用file://协议加载的脚本,这个相同的原始策略将不适用.是真的,如果是的话,我的本地html文件会出现什么问题?

html javascript ajax jquery

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

API开发 - 设计考虑因素

在我4年的经验中,我开发了很多Web应用程序.现在,可编程网络的概念变得越来越流行,几乎每天都会发布新的API.我想为这些端点中的一些开发一个java API /库.Ex stackapps,reddit,digg等...我想知道的是你的人是,

  • 常规Web应用程序的API与这些库的API有何不同.或者从设计角度来看这两者有什么区别
  • 什么是最好的API开发实践.
  • 在设计API之前,我需要考虑哪些因素

.

如果细节不充分,请评论.

open-source

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

休眠注释,指定列默认值

我有一个域对象,注释如下

 @Entity
 @Table(name = "REQUEST")
 public class Request {

  /**
   * Unique id for this request
   */
@Id
@GeneratedValue
@Column(name = "EQ_ID")
private long requestId;
/**
 * 
 */
@Column(name = "EMAIL_ID")
private String emailId;
/**
 * 
 */
@Column(name = "REQUEST_DATE")
private Date requestDate;
/**
*Getters/setters omitted
*/
 }
Run Code Online (Sandbox Code Playgroud)

Request_date列不能为null,根据DDL,默认值为sysdate(oracle DB).如何对该字段进行注释,以便在requestDate属性为null时,hiberanate会自动插入sysdate.目前,当字段为空时,它会抛出错误,这非常明显,因为根据数据库约束它不能为空.我该怎么做?另一种方法是将此字段标记为瞬态,插入工作正常.但负面的方面是,我将无法检索(request_date列的)值.

java oracle orm hibernate jpa

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

Hibernate序列生成非连续值

我正在使用hibernate sequencegenerator为我的主键列自动生成唯一值.示例代码如下所示.

@Entity
@Table(name = "REQUEST")
@javax.persistence.SequenceGenerator(name = "REQ_SEQ", sequenceName = "REQUEST_SEQ")
public class Request {
/**
 * Unique id for this request
 */
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "REQ_SEQ")
@Column(name = "REQ_ID")
private long requestId;
   //So on
}
Run Code Online (Sandbox Code Playgroud)

除了生成的值是交错的这一事实外,一切正常.例如,它插入5000到5015(15个插入)的值,然后第16个插入产生的值为5100.然后它适用于一些后续插入并再次出现问题.我没有任何问题,只要生成的值是唯一的,但只是好奇知道是什么原因造成的.仅供参考,我正在使用Oracle.

java oracle hibernate

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

标签 统计

java ×5

hibernate ×3

oracle ×2

ajax ×1

html ×1

javascript ×1

jpa ×1

jquery ×1

open-source ×1

orm ×1