小编Cha*_*nya的帖子

Hibernate没有arg构造函数

我正在浏览hibernate文档,文档说hibernate需要一个no-arg构造函数用于所有持久化类:

无参数构造函数是所有持久化类的要求; Hibernate必须使用Java Reflection为您创建对象.构造函数可以是私有的,但是运行时代理生成和无需字节码检测的高效数据检索需要包或公共可见性.

但是当我通过创建一个没有任何no-arg构造函数的POJO类并通过放置一个带参数的构造函数来创建一个用于测试的示例程序时,我希望Hibernate会抛出一个异常,但我很惊讶地看到我没有得到异常.

这是我的POJO:

public class Event {
    private Long id;

    private String title;

    public Event(String title) {}

    public Long getId() {
        return id;
    }

    private void setId(Long id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的计划:

import org.hibernate.Session;
import java.util.*;
import org.hibernate.tutorial.domain.Event;
import org.hibernate.tutorial.util.HibernateUtil;

public class EventManager {
    public static void main(String[] args) {
        EventManager mgr = new EventManager();
        mgr.createAndStoreEvent("My Event", new …
Run Code Online (Sandbox Code Playgroud)

java hibernate

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

Spring中的组件扫描过滤器类型

我使用的学习春春在行动第3版,我在不同的来到filter typescomponent scanning春.

这是可用的列表:

注释 - 过滤扫描类,查找在类型级别使用给定注释进行注释的扫描类.要扫描的注释在表达式属性中指定.

assignable - 过滤扫描类,查找可分配给expression属性中指定类型的类.

aspectj - 过滤扫描类,查找与expression属性中指定的AspectJ类型表达式匹配的扫描类.

custom - 使用org.springframework.core.type.TypeFilter的自定义实现,如expression属性中指定的那样.

regex - 过滤扫描类,查找其类名与expression属性中指定的正则表达式匹配的类.

根据书中给出的示例,我对过滤器类型的使用有了一些想法,可用于可分配和注释.

但对于剩余的过滤器类型,我无法理解这些类型的使用方式以及何时需要使用其中一种类型.能帮助我理解这里的概念吗?

java spring

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

WSDL抽象与具体消息

我正在从在线文档中学习WSDL,并且遇到了关于抽象消息和具体消息的定义:

消息定义始终被视为消息内容的抽象定义.消息绑定描述了抽象内容如何映射到具体格式.

但是,在某些情况下,抽象定义可能与一个或多个绑定非常接近或完全匹配具体表示,因此这些绑定将提供很少或没有映射信息.

但是,相同消息定义的另一个绑定可能需要大量的映射信息.出于这个原因,直到检查绑定,才能确定消息的"抽象程度".

请帮我理解上面的定义是什么意思?能否请你提供一些例子.

当我们把一个消息Abstract,当它被称为concreteWSDL条款?

java wsdl web-services

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

如何在Hibernate中使用@Subselect

我正在尝试@Subselect使用Hibernate documentaion的示例。

我已经为Bid和Item创建了实体,如下所示:

@Entity
public class Bid {
    @Id
    private int id;
    @Column(name="item_id")
    private int itemId;
    @Column
    private int amount;
//getters & setters
}


@Entity
public class Item {
    @Id
    private int id;
    @Column
    private String name;
//getters and setters
}
Run Code Online (Sandbox Code Playgroud)

我已经在Bid和Item的数据库表中插入了一些记录。现在,我创建了另一个实体以将@Subselect测试为:

@Entity
@Subselect("select item.name name, max(bid.amount) amount, count(*) count " + "from item "
        + "join bid on bid.item_id = item.id " + "group by item.name")
@Synchronize({ "item", "bid" })
// tables impacted
public class …
Run Code Online (Sandbox Code Playgroud)

java oracle hibernate

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

如何纠正此映射异常(使用@OneToMany或@ManyToMany定位未映射的类)

嗨,我得到一些映射异常请遵循以下错误

org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: com.cmr.daos.child.domain.Child.medications[com.cmr.daos.child.domain.Medications]
    at org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1185)
    at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:710)
    at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:645)
    at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:65)
    at org.hibernate.cfg.Configuration.originalSecondPassCompile(Configuration.java:1716)
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1423)
    at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1375)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:720)
    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:188)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1571)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509)
    ... 62 more
Run Code Online (Sandbox Code Playgroud)

我的域名类:

 public class Child extends AuditProperties implements java.io.Serializable {

@Expose private Long childId;
@Expose private String firstName;
@Expose private String lastName;

private Set<Allergies> allergies = new HashSet<Allergies>();

private Set<Medications> medications = new HashSet<Medications>();

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "child")
@JsonManagedReference …
Run Code Online (Sandbox Code Playgroud)

spring hibernate

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

在Unix中使用awk命令打印用户名

我是unix的新手并试图理解下面的awk命令:

AWK=/bin/awk
RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}'`
echo $RUID
Run Code Online (Sandbox Code Playgroud)

该命令正在打印登录的用户名,但是如何使用此命令提取用户名.

unix awk

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

Hibernate 持久化 vs 保存

当我试图理解 Hibernate Save 和 persist 之间的时候,我遇到了这个解释:

persist() 定义明确。它使瞬态实例持久化。但是,它不保证标识符值会立即分配给持久化实例,分配可能发生在刷新时间。规范没有这么说,这就是我在使用 persist() 时遇到的问题。

persist() 还保证如果在事务边界之外调用它,它不会执行 INSERT 语句。这在具有扩展会话/持久性上下文的长时间运行的对话中很有用。

需要像persist()这样的方法。

save() 不保证相同,它返回一个标识符,并且如果必须执行 INSERT 来获取标识符(例如“身份”生成器,而不是“序列”),无论您是否在里面,这个 INSERT 都会立即发生或在交易之外。这在具有扩展会话/持久性上下文的长时间运行的对话中并不好。

你能帮我理解坚持的线条说:

persist() 还保证如果在事务边界之外调用它,它不会执行 INSERT 语句。这在具有扩展会话/持久性上下文的长时间运行的对话中很有用。

这里的交易边界是什么?什么是长时间的对话?扩展会话/持久上下文是什么意思?

也用于保存方法:

无论您是在事务内部还是外部,此 INSERT 都会立即发生。这在具有扩展会话/持久性上下文的长时间运行的对话中并不好。

我知道如果我们在我的程序中使用 save 方法来保存对象,我们不需要像 session.beginTransaction() 和 session.getTransaction().commt() 这样的语句。如果声明在这里说同样的话,请告诉我。那么这在长时间运行的对话中有什么用呢?

我是 hibernate 的新手,很难理解这些差异,你能帮我理解这些差异吗?

java hibernate

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

JMS 持久化交付模式

我正在学习 JMS 并遇到了这个声明:http : //docs.oracle.com/javaee/1.3/jms/tutorial/1_3_1-fcs/doc/advanced.html#1023387

PERSISTENT 传递模式是默认设置,它指示 JMS 提供者格外小心,以确保在 JMS 提供者发生故障时消息不会在传输过程中丢失。使用此传递模式发送的消息在发送时会记录到稳定存储中。

如果发生 JMS Provider 故障,那么 JMS Provider 如何确保消息不丢失?

这是什么意思:

“使用这种传递模式发送的消息在发送时会记录到稳定存储中。”

请帮助我在这里理解 JMS 概念。

jms persistent

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

在UNIX脚本中使用SQLPLUS命令

我试图理解一个简单的脚本,它使用unix中的sqlplus命令连接到Oracle数据库:

1 sqlplus -s /nolog > /dev/null 2>&1 <<EOF
2 whenever sqlerror exit failure
3 connect $user_pwd
4 exit success
5 EOF
Run Code Online (Sandbox Code Playgroud)

如果我正在使用unix,那么我使用命令sqlplus $user_pwd连接到oracle数据库并且sqlplus使用命令exit.请帮助我理解1,2,4,5行.对于专家来说这可能是一个简单的问题,但我无法理解何时使用这些问题.

unix oracle bash sqlplus

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

Ubuntu中libaio软件包的用途是什么

我最近开始使用Ubuntu,尝试安装一些软件包,并偶然发现了该软件包libaio,这个软件包的目的是什么,以及何时需要在Ubuntu上安装它?

ubuntu

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

标签 统计

java ×5

hibernate ×4

oracle ×2

spring ×2

unix ×2

awk ×1

bash ×1

jms ×1

persistent ×1

sqlplus ×1

ubuntu ×1

web-services ×1

wsdl ×1