我来自Java方面使用Hibernate而我还没有找到合适的位置来放置命名查询NHibernate.
使用Visual Studio 2008,C#2008
我有一个问题
<query name="SchwabAccountList">
from DB_Accounts a
where a.AdminOffCode = 'SWB'
</query>
Run Code Online (Sandbox Code Playgroud)
我想把它放在.hbm.xmlAccount表中(DB_Accounts)
我把它放在文件的末尾但在<class>标签内
<query name="AccountList">
from DB_Accounts a
where a.AdminOffCode = 'SWB'
</query>
</class>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)
我正在使用的代码,我尝试了几种不同的方法,但得到了
Named query not known: AccountList
或者我尝试使用的任何其他名称(assembly.dir.dir.class.queryname)那种东西.
访问代码看起来像.
ISessionFactory factory = cfg.BuildSessionFactory();
ISession session = factory.OpenSession();
IList<DB_Accounts> accountList =
(IList<DB_Accounts>)(session.GetNamedQuery("AccountList").List());
foreach (BDM_Controller.Source.ORM.DB_Accounts acctRec in accountList)
{
...
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我们使用JBoss 7.1,MySQL/PostgreSQL DB,JSF 2.0和CDI bean.
我必须通过登录名和密码实现基于DB的身份验证.我们有一个管理(管理)门户网站.当客户端在未登录的情况下打开受限页面时,login.*如果客户端未登录,则应将请求重定向到页面.
我试图通过使用a来做到这一点PhaseListener.我可以登录和注销,但是当我尝试打开另一个页面时遇到了一个问题:我无法@Named("user") public class UserManager在PhaseListener课程中获得bean .我试图通过使用FacesContext和EL 来获得它,这一切都没有帮助我.
该UserManager验证的登录名和存储登录用户的current财产.在每个请求,我想检查PhaseListenerif #{user.current}是不是null.但我无法得到#{user}豆子PhaseListener.
我怎样才能得到一个@Named在豆beforePhase()或afterPhase()?
更新:这是我到目前为止的尝试:
private boolean loggedIn( FacesContext context ) throws IOException, ServletException
{
LOGSTORE.debug( "loggedIn().2 " );
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
// ELContext elContext = FacesContext.getCurrentInstance().getELContext();
// UserManager userManager = (UserManager) …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个实用程序项目,它将帮助我管理应用程序的用户(用户有一个或多个角色,一个角色有一个或多个权限).我是Hibernate的新手,我不知道为什么遇到以下问题:
ERROR [hibernate.internal.SessionFactoryImpl] HHH000177: Error in named query: right.findAllByRoleId
org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: right near line 1, column 8 [select right from com.google.code.jee.utils.user.management.model.Role as r left join r.rights as right where r.id = :roleId]
at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)
at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47)
at org.hibernate.hql.internal.ast.ErrorCounter.throwQueryException(ErrorCounter.java:79)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:276)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:180)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:106)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:81)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:167)
at org.hibernate.internal.SessionFactoryImpl.checkNamedQueries(SessionFactoryImpl.java:1130)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:523)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1740)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1778)
at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:189)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:350)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:335)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at …Run Code Online (Sandbox Code Playgroud) 我无法理解let在我发现的示例中的这种用法。我正在使用鸡肉计划。
(let loop ()
(print "hello world")
(loop)
)
Run Code Online (Sandbox Code Playgroud)
这是一个简单的无限循环,它递归地调用自己,我无法理解的是语法。我知道第一个参数必须是一个成对列表,((<var[1]> <value[1]>)...(<var[n]> <value[n]))其他参数是 let 的主体。那么,为什么这个片段有效呢?
这是我的示例Bash 脚本 example.sh:
#!/bin/bash
# Reading arguments and mapping to respective variables
while [ $# -gt 0 ]; do
if [[ $1 == *"--"* ]]; then
v="${1/--/}"
declare $v
fi
shift
done
# Printing command line arguments through the mapped variables
echo ${arg1}
echo ${arg2}
Run Code Online (Sandbox Code Playgroud)
现在,如果在终端中运行 bash 脚本,如下所示:
$ bash ./example.sh "--arg1=value1" "--arg2=value2"
Run Code Online (Sandbox Code Playgroud)
我得到正确的输出,例如:
value1
value2
Run Code Online (Sandbox Code Playgroud)
完美的!这意味着我能够使用 bash 脚本中的变量 ${arg1} 和 ${arg2} 来使用传递给参数 --arg1 和 --arg2 的值。
我现在对这个解决方案很满意,因为它符合我的目的,但是,任何人都可以建议任何更好的解决方案来在 bash 脚本中使用命名命令行参数吗?
如果未提供可选的命名参数,为什么它不null 符合预期?
void main() {
num double({v: num}) {
if (v == null)
return 0;
else
return v * 2;
}
print(double(v: 2));
print(double());
print('done');
}
Run Code Online (Sandbox Code Playgroud)
输出为
4
Uncaught TypeError: v.$mul is not a function
Run Code Online (Sandbox Code Playgroud) 给定一个命名列表:
values <- list( a=1, b=2 )
Run Code Online (Sandbox Code Playgroud)
我想生成一个逗号分隔的字符串,其中包含以下名称:
"a=1,b=2"
Run Code Online (Sandbox Code Playgroud)
以下作品,但看起来非常笨重:
library( iterators )
library( itertools )
fieldnames <- names(values)
sublist <- list()
iter_fieldnames <- ihasNext( iter( fieldnames ) )
iter_values <- ihasNext( iter( values ) )
while( hasNext( iter_fieldnames ) & hasNext( iter_values ) ) {
sublist <- append( sublist, paste0( nextElem( iter_fieldnames ), "=", nextElem( iter_values ) ) )
}
paste0( sublist, collapse="," )
[1] "a=1,b=2"
Run Code Online (Sandbox Code Playgroud)
在"粘贴""崩溃"的选择似乎那么优雅靠拢,但我无法弄清楚它是否可以进行分层(即,"首先,崩溃的名称和值用'=’,然后崩溃'’) :
paste0( paste0(names(values), values, collapse='='), collapse="," )
[1] "a1=b2"
Run Code Online (Sandbox Code Playgroud)
要么
paste0( paste0( …Run Code Online (Sandbox Code Playgroud) 我想知道是否有一种方法可以将命名参数转换为dict.
我知道使用**kwargs代替单个命名参数将非常简单。
def func(arg1=None, arg2=None, arg3=None):
# How can I convert these arguments to {'arg1': None, 'arg2': None, 'arg3': None}`
Run Code Online (Sandbox Code Playgroud) 我搜索了很多资源,在他们提供的示例中,它看起来像这样:
void bar(int a = 4, char b = 'A')
{
}
Run Code Online (Sandbox Code Playgroud)
根据这个资源, 它可以被称为:
bar(b : 'Z');
Run Code Online (Sandbox Code Playgroud)
但它给了我一个错误identifier "b" is undefined.我正在使用Visual Studio 2015 Update 3 Enterprise.
任何建议如何只指定第二个参数?
是否可以在Java或Javascript中使用带有正则表达式的命名参数作为参数的名称?我希望能够调用这样的函数:
f("function name:", "drawCircle", "radius:" 1, "xPos:" 0, "yPos:", 0, "color:", "red");
Run Code Online (Sandbox Code Playgroud)
或者像这样,具有完全相同的效果:
f("name of function:", "draw a circle", "y position:", 0, "color:", "red", "rad:" 1, "x location:" 0);
Run Code Online (Sandbox Code Playgroud)
这两个都应该等于foo(1,0,0,红色).
在这两种情况下,给出的参数应该与正则表达式列表匹配.应该可以以任何顺序列出具有相同结果的参数和函数名称.
有没有办法实现这样的东西?