小编hai*_*one的帖子

JsonMappingException:无法从JSON String实例化类型[simple type,abcCompany]的值; 没有单字符串构造函数/工厂方法

我刚刚在我现有的Spring + BlazeDS + Hibernate服务器上添加了一个REST api,当数据被检索并序列化为JSON时,一切似乎都有效,但是当我尝试将POST数据反序列化为POJO时,我得到了一个例外.

我的印象是弹簧注释和类路径中杰克逊罐子的存在将是所有需要的,至少它是我的列表,获取,删除具有简单参数的方法.

org.codehaus.jackson.map.JsonMappingException: Can not instantiate value of type [simple type, class com.twoh.dto.Company] from JSON String; no single-String constructor/factory method
Run Code Online (Sandbox Code Playgroud)

这是被调用的方法:

public abstract class BaseEntityService<T extends BaseEntity> implements IBaseEntityService<T> {

private IBaseEntityDAO<T> DAO;

@Autowired
private ValidationResultHelper validationResultHelper;

public void setDAO(IBaseEntityDAO<T> DAO) {
    this.DAO = DAO;
}

...
@Secured("ROLE_USER")
@RequestMapping(value="/create", method=RequestMethod.POST)
public @ResponseBody ValidationResult create(@RequestBody T entity) {
    ValidationResult result = null;
    try {
        result = DAO.persistEntity(entity);
    } catch(JDBCException e) {
        result = ExceptionHelper.getValidationResult(e);
    } catch(DataIntegrityViolationException …
Run Code Online (Sandbox Code Playgroud)

rest spring json jackson

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

Hibernate aliasToBean不会将字符串转换为Enum

我在下面的查询是在列列表中选择一个常量,我希望aliasToBean将字符串转换为适当的枚举类型.

我已将具有枚举属性的其他实体映射为字符串,并且没有任何问题.

    @SuppressWarnings("unchecked")
    List<AssociatedEntity> fileList = queryUtil.createHQLQuery((
            "select '" + AssociatedEntityTypeEnum.ASSOCIATED_ENTITY_TYPE_FILE + "' as associatedEntityType," +
            " a.file2Id as id," +
            " f.name as name" +
            " from File f, Association a" +
            " where f.id = :fileId" +
            " and a.file1Id = f.id" +
            " and a.associationType = :associationType"
    ))
    .setParameter("fileId", fileId)
    .setParameter("associationType", AssociationTypeEnum.ASSOCIATION_TYPE_FILE_FILE)
    .setResultTransformer(Transformers.aliasToBean(AssociatedEntity.class))
    .list();
Run Code Online (Sandbox Code Playgroud)

这是豆子:

public class AssociatedEntity {

public AssociatedEntity() {}

@Enumerated(EnumType.STRING)
private AssociatedEntityTypeEnum associatedEntityType;
public AssociatedEntityTypeEnum getAssociatedEntityType() { return this.associatedEntityType; }
public void setAssociatedEntityType(AssociatedEntityTypeEnum associatedEntityType) …
Run Code Online (Sandbox Code Playgroud)

enums hibernate hql

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

为什么sed不能取代重叠模式

我有一个数据库卸载文件,其字段用<TAB>字符分隔.我通过sed运行此文件,用<TAB>\N <TAB>替换<TAB> <TAB>的任何出现.这样,当文件加载到MySQL时,\ N被解释为NULL.

sed命令的/\t\t\\ t\N\t/g;' 几乎可以工作,只是它只替换第一个实例,例如"... <TAB> <TAB> <TAB> ..."变为"... <TAB>\N <TAB> <TAB> ...".

如果我使用's /\t\t /\t\N\t/g; s /\t\t /\t\N\t/g;' 它取代了更多的实例.

我有一个想法,尽管/ g修饰符这与一个匹配的结束是另一个的开始有关.

任何人都可以解释发生了什么,并建议一个sed命令可以工作或我需要循环.

我知道我可以切换到awk,perl,python,但我想知道sed中发生了什么.

unix shell sed

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

Fancytree不可见有类ui-helper-hidden

我刚刚开始使用fancytree 2.6.0,我从Web服务请求填充它.

我的问题是所有节点都存在但是被ui-helper-hidden类隐藏了.我已经使用以下命令进行临时修复:$(rootNode.ul).removeClass('ui-helper-hidden'); 但我相信我错过了一些东西.

脚本和css:

<link href="Scripts/jquery-plugins/fancytree-2.6.0/src/skin-themeroller/ui.fancytree.css" rel="stylesheet" type="text/css" />
<script src="Scripts/jquery-1.11.1/jquery-1.11.1.js" type="text/javascript"></script>
<script src="Scripts/jquery-1.11.1/jquery-migrate-1.2.1.js" type="text/javascript"></script>
<script src="Scripts/jquery-ui-1.11.2/jquery-ui.js" type="text/javascript"></script>
<script src="Scripts/jquery-plugins/fancytree-2.6.0/src/jquery.fancytree.js" type="text/javascript"> </script>
<script src="Scripts/jquery-plugins/fancytree-2.6.0/src/jquery.fancytree.themeroller.js" type="text/javascript"> </script>
Run Code Online (Sandbox Code Playgroud)

代码:

$('#selectedClausesDiv').fancytree();

$.when(
    $.getJSON("Handlers/GetQuotationHandler.ashx?jsoncallback=?", { quoteReference: quoteReference, quoteVersion: quoteVersion })
).then(function (data) {
    if (data.ErrorCode == 0 && data.Quotation != null) {
        var rootNode = $("#selectedClausesDiv").fancytree("getRootNode");
        $.each(data.Quotation.Covers, function (index, item) {
            addCover(rootNode, item);
        });

        // FIXME: why is this necessary ??
        // $(rootNode.ul).removeClass('ui-helper-hidden');
    }
});

function addCover(rootNode, cover) {
    var coverId = 'selected_' …
Run Code Online (Sandbox Code Playgroud)

javascript jquery fancytree

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

当Sessionfactory.getCurrentSession.merge调用时,@ Aututired bean在ConstraintValidator中为null

我刚刚用Hibernate实现了Bean Validation.

如果我显式调用验证器它按预期工作,并且按预期注入连接到DB的@Autowired DAO bean.

我以前发现我需要在上面的内容之前添加以下语句.之前我已经广泛使用了@Autowired bean,但下面的语句对于由Spring管理验证器和注入ConstraintValidator的bean是必要的.

<bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
Run Code Online (Sandbox Code Playgroud)

但是,当在SessionFactory.getCurrentSession.merge期间自动调用验证器时,bean为null.

如果我通过调用javax.Validation.validate直接调用验证器,它的工作原理使我认为我已正确设置了Spring配置.

我已经读过人们无法获得DAO bean @Autowired的帖子的数字,但在我的情况下,除了在合并期间调用时.

下面的日志输出显示首先直接调用验证器,然后作为合并操作的结果调用.

07.12.2011 01:58:13  INFO [http-8080-1] (FileTypeAndClassValidator:isValid) - Validating ...
07.12.2011 01:58:13  INFO [http-8080-1] (ConstraintValidatorHelper:getPropertyValue) - propertyName=className, returnValue=com.twoh.dto.PurchaseOrder
07.12.2011 01:58:13  INFO [http-8080-1] (ConstraintValidatorHelper:getPropertyValue) - propertyName=fileTypeId, returnValue=4
07.12.2011 01:58:13  INFO [http-8080-1] (QueryUtil:createHQLQuery) - select ft.id from FileType ft where ft.id = :fileTypeId and ft.fileClassName = :fileClassName
07.12.2011 01:58:13  INFO [http-8080-1] (BaseDAO:merge) - Entity: com.twoh.dto.PurchaseOrder: 1036.
07.12.2011 01:58:13  INFO [http-8080-1] (FileTypeAndClassValidator:isValid) - Validating ...
07.12.2011 01:58:13  INFO …
Run Code Online (Sandbox Code Playgroud)

spring hibernate autowired bean-validation

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