问题列表 - 第35169页

使用CDI + WS/RS + JPA构建应用程序

@Path(value = "/user")
@Stateless
public class UserService {

    @Inject
    private UserManager manager;

    @Path(value = "/create")
    @GET
    @Produces(value = MediaType.TEXT_PLAIN)
    public String doCreate(@QueryParam(value = "name") String name) {
        manager.createUser(name);

        return "OK";
    }
}
Run Code Online (Sandbox Code Playgroud)

这是用户管理器impl

public class UserManager {

    @PersistenceContext(unitName = "shop")
    private EntityManager em;

    public void createUser(String name) {
        User user = new User();
        user.setName(name);
        // skip some more initializations 
        em.persist(user);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是如果我没有将UserService标记为@Stateless,那么manager字段为null

但如果我标记@Stateless,我可以注入管理器字段,并且应用程序工作,因为我可以将数据保存到数据库中

只是想知道,这背后的原因是什么?

这是连接应用程序的首选方式吗?

好吧,我正在考虑将EntityManager拉出到生产者,以便它可以共享

jpa jax-rs java-ee cdi java-ee-6

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

使用具有可变参数模板函数的decltype的尾随返回类型

我想写一个简单的加法器(giggles),它将每个参数相加并返回一个具有适当类型的和.目前,我有这个:

#include <iostream>
using namespace std;

template <class T>
T sum(const T& in)
{
   return in;
}

template <class T, class... P>
auto sum(const T& t, const P&... p) -> decltype(t + sum(p...))
{
   return t + sum(p...);
}

int main()
{
   cout << sum(5, 10.0, 22.2) << endl;
}
Run Code Online (Sandbox Code Playgroud)

在GCC 4.5.1上,这似乎适用于2个参数,例如sum(2,5.5)返回7.5.但是,由于参数多于此,我得到的错误是sum()尚未定义.如果我这样声明sum():

template <class T, class P...>
T sum(const T& t, const P&... p);
Run Code Online (Sandbox Code Playgroud)

然后它适用于任意数量的参数,但sum(2,5.5)将返回整数7,这不是我所期望的.有两个以上的参数我假设decltype()必须进行某种递归才能推导出t + sum(p ...)的类型.这是合法的C++ 0x吗?或者decltype()仅适用于非可变参数声明吗?如果是这样的话,你会怎么写这样的功能?

c++ templates variadic-functions decltype c++11

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

在哪些场景中你使用封装?

我想知道在什么情况下你使用封装.这个问题的目的是协作.因此,当主题被封装时,请随意分享您自己的经验.

一些场景:

计算财产

public class Order {

    private List<ListItem> listItems = new ArrayList<ListItem>();

    public double getTotal() {
        double total = 0;
        for(ListItem listItem: listItems)
            total += listItem.getQuantity() * listItem.getPropduct().getPrice();

        return total;
    }

}
Run Code Online (Sandbox Code Playgroud)

自我验证域对象

public class Person {

    private String name;

    public void setName(String name) {
        if(StringUtils.isBlank(name)) {
            throw new NotEmptyException("name", name);
        }

        this.name = name;
    }

}
Run Code Online (Sandbox Code Playgroud)

对某些特殊行为使用其他类

public class Person {

    private MutableInt id = new MutableInt();

    /**
      * Integer itself is immutable
      */
    public Integer …
Run Code Online (Sandbox Code Playgroud)

java oop encapsulation

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

MVC +服务层在zend或PHP中是否常见?

您可能听说过Fat Model/Thin Controller与Thin Model/Fat Controller的区别.我最近听说你可以在模型之间的某些逻辑进入服务层之间.这有多常见?你知道(或可以想到)任何说明它的真实例子吗?

php oop model-view-controller zend-framework

11
推荐指数
2
解决办法
3942
查看次数

MVC3中的ModelState.IsValid与IValidateableObject

所以根据Gu IValidatableObject.Validate()应该在控制器验证它的模型时(即之前ModelState.IsValid)调用,但是简单地使模型工具IValidatableObject似乎不起作用,因为Validate(..)不会被调用.

任何人都知道我是否还有其他东西可以连接起来让它起作用?

编辑:

这是所要求的代码.

public class LoginModel : IValidatableObject
{
    [Required]
    [Description("Email Address")]
    public string Email { get; set; }

    [Required]
    [Description("Password")]
    [DataType(DataType.Password)]
    public string Password { get; set; }

    [DisplayName("Remember Me")]
    public bool RememberMe { get; set; }

    public int UserPk { get; set; }

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        var result = DataContext.Fetch( db => {

            var user = db.Users.FirstOrDefault(u => u.Email == Email);

            if (user == null) return …
Run Code Online (Sandbox Code Playgroud)

data-annotations asp.net-mvc-3

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

Powershell错误返回哈希表

任何人都有任何想法为什么以下代码会产生错误,请参阅函数后的其他注释以获取更多详细信息

function callee    ([Hashtable]$arg0) {
    [Hashtable]$hashtable = @{}
    $hashtable = $arg0
    $hashtable.add('passed', $True)
    # $hashtable                            ######## toggle this line
    $type = $hashtable.GetType()
    Write-Host "$type"
    return $hashtable
}

function caller {
    [Hashtable]$hashtable = @{'00'='0'}
    $hashtable = callee $hashtable        ##### returns error here
    $hashtable.add('returned', $True)
    $hashtable
}
caller
Run Code Online (Sandbox Code Playgroud)

错误消息:无法将"System.Object []"类型的"System.Object []"值转换为"System.Collections.Hashtable"类型.

我收到了各种情况的错误,我试图将其缩小到一个易于重现的例子.看起来它正在将哈希表更改为对象数组,这就是为什么它不会返回它?它允许我修改哈希表并返回它但是当我尝试显示它时会改变它吗?这与我开始向被调用者函数添加代码时获得的效果相同?

powershell return hashtable

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

如何在另一个目录中使用repo的工作目录而不是.git文件夹?

我在dir有一个回购~/myRepo/.因为我想在多台机器上使用这个仓库,我想.git在我的目录中拥有该文件夹~/Dropbox/.

我知道,有一些能够创建一个文件~/myRepo,其中包含git文件夹的路径~/Dropbox/myRepo.git,但我忘记了哪个,并且无法在手册页中找到这些信息.

请不要告诉我简单ln -s的文件夹,我试过这个并认为它不切实际.

git

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

这是你分页的方式,还是有更好的算法?

我希望能够采取如下序列:

my_sequence = ['foo', 'bar', 'baz', 'spam', 'eggs', 'cheese', 'yogurt']
Run Code Online (Sandbox Code Playgroud)

使用如下功能:

my_paginated_sequence = get_rows(my_sequence, 3)
Run Code Online (Sandbox Code Playgroud)

要得到:

[['foo', 'bar', 'baz'], ['spam', 'eggs', 'cheese'], ['yogurt']]
Run Code Online (Sandbox Code Playgroud)

这就是我想到的想法:

def get_rows(sequence, num):
    count = 1
    rows = list()
    cols = list()
    for item in sequence:
        if count == num:
            cols.append(item)
            rows.append(cols)
            cols = list()
            count = 1
        else:
            cols.append(item)
            count += 1
    if count > 0:
        rows.append(cols)
    return rows
Run Code Online (Sandbox Code Playgroud)

python paging pagination data-paging

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

Windows PowerShell 2.0绝对是初学者 - 本书最后一个项目的错误

通过Jerry Lee Ford Jr.的Powershell 2.0 for Absolute Beginner一书.本书的代码中有很多印刷错误,我已经能够通过并纠正(很棒的练习),但有一个我根本无法弄清楚.从配套网站下载了他的股票代码,他的代码抛出完全相同的错误.代码如下:

# *************************************************************************
#
# Script Name: GameConsole.ps1 (The PowerShell Game Console)
# Version:     1.0
# Author:      Jerry Lee Ford, Jr.
# Date:        January 1, 2007
# 
# Description: This PowerShell script provides a listing of PowerShell
#              game scripts and allows the player to play any game by 
#              entering its menu number.
# 
# *************************************************************************


# Initialization Section

$menuList = @()  #Stores an array containing information about script games
$playAgain = …
Run Code Online (Sandbox Code Playgroud)

powershell powershell-2.0

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

拥有一个仅为其工具提示存在的A标记是一种好习惯吗?

拥有一个仅为其工具提示存在的链接是一种好习惯吗?像这样:

<a title="10% off all widgets in September!">$90.00</a>
Run Code Online (Sandbox Code Playgroud)

html

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