您能帮我解决一下如何将以下代码转换为使用条件构建器的"in"运算符吗?我需要使用"in"使用列表/数组的用户名进行过滤.
我也尝试使用JPA CriteriaBuilder进行搜索 - "in"方法但是找不到好的结果.如果你能给我这个主题的参考网址,我也非常感谢.谢谢.
这是我的代码:
//usersList is a list of User that I need to put inside IN operator
CriteriaBuilder builder = getJpaTemplate().getEntityManagerFactory().getCriteriaBuilder();
CriteriaQuery<ScheduleRequest> criteria = builder.createQuery(ScheduleRequest.class);
Root<ScheduleRequest> scheduleRequest = criteria.from(ScheduleRequest.class);
criteria = criteria.select(scheduleRequest);
List<Predicate> params = new ArrayList<Predicate>();
List<ParameterExpression<String>> usersIdsParamList = new ArrayList<ParameterExpression<String>>();
for (int i = 0; i < usersList.size(); i++) {
ParameterExpression<String> usersIdsParam = builder.parameter(String.class);
params.add(builder.equal(scheduleRequest.get("createdBy"), usersIdsParam) );
usersIdsParamList.add(usersIdsParam);
}
criteria = criteria.where(params.toArray(new Predicate[0]));
TypedQuery<ScheduleRequest> query = getJpaTemplate().getEntityManagerFactory().createEntityManager().createQuery(criteria);
for (int i = 0; i < usersList.size(); …
Run Code Online (Sandbox Code Playgroud) 你能帮我么?查询布尔值"r.isDefault = true"时出错.
在我的HQL命名查询中:
<named-query name="RptQuery.queryDefaultByCode">
<query>
SELECT r FROM RptQuery r WHERE r.code = ?1 AND r.isDefault = true
</query>
</named-query>
Run Code Online (Sandbox Code Playgroud)
我得到错误:引起:org.hibernate.HibernateException:命名查询中的错误:RptQuery.queryDefaultByCode
在我的persistence.xml中:
<property name="hibernate.query.substitutions" value="true='Y', false='N', yes='Y', no='N'"/>
Run Code Online (Sandbox Code Playgroud)
在我的pojo中:
private boolean isDefault;
@Column(name = "CPMN_IS_DEFLT", length = 1)
@Type(type = "yes_no")
public boolean isDefault() {
return this.isDefault;
}
public void setDefault(boolean isDefault) {
this.isDefault = isDefault;
}
Run Code Online (Sandbox Code Playgroud)
先感谢您!
答:刚发现一个小错误:
r.isDefault = true
Run Code Online (Sandbox Code Playgroud)
应该
r.default = true
Run Code Online (Sandbox Code Playgroud)
谢谢.
你能帮我解决一下如何在PL/SQL中为存储过程创建二维数组?列是动态的,因此它也可以增长和改变类型.任何帮助表示赞赏.先感谢您!
我有以下代码:
Type CAR_TABLE_ARRAY is varray(2) of varchar2(255);
TYPE CAR_TABLE_TYPE IS TABLE OF CAR_TABLE_ARRAY;
CAR_TABLE CAR_TABLE_TYPE;
CAR_TABLE := CAR_TABLE_TYPE();
CAR_TABLE.EXTEND(10);
CAR_TABLE(1)(1) := 'DODGE';
CAR_TABLE(2)(1) := 'FORD';
CAR_TABLE(3)(1) := 'MUSTANG';
CAR_TABLE(4)(1) := 'EDSEL';
CAR_TABLE(5)(1) := 'STUDEBAKER';
DBMS_OUTPUT.put_line( '1 ' || CAR_TABLE(1)(1) );
DBMS_OUTPUT.put_line( '2 ' || CAR_TABLE(2)(1) );
DBMS_OUTPUT.put_line( '3 ' || CAR_TABLE(3)(1) );
DBMS_OUTPUT.put_line( '4 ' || CAR_TABLE(4)(1) );
DBMS_OUTPUT.put_line( '5 ' || CAR_TABLE(5)(1) );
Run Code Online (Sandbox Code Playgroud)
当我运行时,我收到以下错误:
ORA-06531:未初始化集合的参考
能否帮助我如何使用一个公共连接表连接三个表?我有USER,APPLICATION和ROLE表.我希望将他们的ID加入名为USER_APP_ROLE(user.ID,application.ID,role.ID)的表中.
当我删除Join Many to Many中的Application或Role表时,我的代码正在运行.
我做了以下代码:
User.java
@ManyToMany (targetEntity=Role.class)
@JoinTable(name="USER_APPLICATION_ROLE",
joinColumns=@JoinColumn(name="USER_ID"),
inverseJoinColumns=@JoinColumn(name="ROLE_ID"))
private Collection<Role> roles;
@ManyToMany (targetEntity=Application.class)
@JoinTable(name="USER_APPLICATION_ROLE",
joinColumns=@JoinColumn(name="USER_ID"),
inverseJoinColumns=@JoinColumn(name="APPLICATION_ID"))
private Collection<Application> applications;
Run Code Online (Sandbox Code Playgroud)
Role.java
@ManyToMany(mappedBy="roles", targetEntity=User.class)
private Collection<User> users = new ArrayList<User>();
Run Code Online (Sandbox Code Playgroud)
Application.java
@ManyToMany(mappedBy="applications", targetEntity=User.class)
private Collection<User> users = new ArrayList<User>();
Run Code Online (Sandbox Code Playgroud)
当我尝试运行以下测试时:
user.getRoles().add(role1);
user.getRoles().add(role2);
role1.getUsers().add(user);
role1.getUsers().add(user);
role2.getUsers().add(user);
role2.getUsers().add(user);
user.getApplications().add(app1);
user.getApplications().add(app2);
app1.getUsers().add(user);
app2.getUsers().add(user);
......
session.beginTransaction();
session.save(user);
session.save(role1);
session.save(role2);
session.save(app1);
session.save(app2);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Hibernate: select seq_cm_user.nextval from dual
Hibernate: select seq_role.nextval from dual
Hibernate: select seq_role.nextval from dual
Hibernate: select seq_application.nextval from dual …
Run Code Online (Sandbox Code Playgroud) 我需要在我的PHP代码中连接到Oracle DB.
我使用的是Windows Server 2012,带有PHP Manager的IIS 8和PHP 5.5.11版.我打开IIS PHP管理器,然后转到PHP Extensions,然后我启用了"php_oci8.dll"扩展.
extension=php_oci8.dll
;extension=php_oci8_11g.dll
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试连接到Oracle DB时,我收到以下PHP错误:
PHP Fatal error: Call to undefined function oci_connect()
Run Code Online (Sandbox Code Playgroud)
我刚刚使用IIS管理器重新启动IIS,但没有完成计算机重启.我需要重启吗?
我是否还需要下载"instantclient-basic-windows.x64-12.1.0.1.0.zip"?我试图提取它并将目录放在"Path"环境变量中,但仍然无法正常工作.
PHPInfo的配置命令:
cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack"
"--disable-zts" "--disable-isapi" "--disable-nsapi" "--without-mssql"
"--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=C:\php-sdk\oracle\x86\instantclient10\sdk,shared"
"--with-oci8=C:\php-sdk\oracle\x86\instantclient10\sdk,shared"
"--with-oci8-11g=C:\php-sdk\oracle\x86\instantclient11\sdk,shared"
"--with-enchant=shared" "--enable-object-out-dir=../obj/"
"--enable-com-dotnet=shared" "--with-mcrypt=static"
"--disable-static-analyze" "--with-pgo"
Run Code Online (Sandbox Code Playgroud)
非常感谢你提前.
我有以下四个表:
SCHEDULE_REQUEST 表: ID、APPLICATION_ID (FK)
应用表: ID、代码
USER_APPLICATION 表: APPLICATION_ID (FK)、USER_ID (FK)
用户表: ID、姓名
现在我想创建一个CriteriaBuilder
where 条件是选择ScheduleRequests
指定的用户 ID。
我有以下代码:
List<User> usersList = getSelectedUsers(); // userList contains users I wanted to select
CriteriaBuilder builder = getJpaTemplate().getEntityManagerFactory().getCriteriaBuilder();
CriteriaQuery<ScheduleRequest> criteria = builder.createQuery(ScheduleRequest.class);
Root<ScheduleRequest> scheduleRequest = criteria.from(ScheduleRequest.class);
criteria = criteria.select(scheduleRequest);
ParameterExpression<User> usersIdsParam = null;
if (usersList != null) {
usersIdsParam = builder.parameter(User.class);
params.add(builder.equal(scheduleRequest.get("application.userApplications.user"), usersIdsParam));
}
criteria = criteria.where(params.toArray(new Predicate[0]));
TypedQuery<ScheduleRequest> query = getJpaTemplate().getEntityManagerFactory().createEntityManager().createQuery(criteria);
// Compile Time Error here:
// The method …
Run Code Online (Sandbox Code Playgroud) Oracle Materialized视图中是否有一种方法可以在物化视图中使用的表发生更改时自动刷新?我应该使用什么是刷新模式和刷新方法?我应该使用Sql Developer使用哪些选项?
先感谢您
我正在使用 Jquery DataTables.net。我想合并数据表上的重复值,例如我有:
--------------------------------------------
A | 1 | 2
--------------------------------------------
A | 1 | 4
--------------------------------------------
A | 2 | 5
--------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我希望他们是这样的:
---------------------------------------------
| | 2
| 1 |---------
A | | 4
|---------------|---------
| 2 | 5
---------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我如何在 DataTables Jquery 上做到这一点?谢谢你。
我正在使用Eclipse和插件Subeclipse for SVN.我只是想将文件重命名为大写名称.示例:"file_a.txt"到"FILE_A.TXT"我的最佳做法是什么?
我试图右键单击该文件并选择"重命名"(F2)重命名,然后提交到SVN.但是我遇到了一个错误:
Problems encountered while moving resources.
SVN: '0x00000118: Move' operation finished with error
Move 'file_a.txt' to '/project/package' was failed.
svn: File 'C:\eclipse\project\package\FILE_A.TXT' already exists
Run Code Online (Sandbox Code Playgroud)
非常感谢你提前.
请帮助我,因为我刚刚安装了Oracle 11g但无法使用SQL Devloper使用以下设置连接:
用户名:system
密码:mypassword
主机名:localhost
港口:1521
SID:XE
错误信息:
状态:失败 - 测试失败:侦听器拒绝连接并出现以下错误:
ORA-12505,TNS:监听器当前不知道连接描述符中给出的SID
我检查了Windows服务:
OracleServiceXE:已启动
OracleXETNSListener:已启动
我也无法连接到管理页面: **http://localhost:8080/apex/f?p=4950**
它说"此页面无法显示"
我还测试了使用SqlPlus进行连接:
测试1:结果是ORA-12170:TNS:发生连接超时
C:\ oraclexe\app\oracle\product\11.2.0\server\bin> sqlplus.exe system/mypassword @ XE
SQL*Plus:版本11.2.0.2.0生产于2014年4月22日星期二11:22:31版权所有(c)1982,2010,Oracle.版权所有.
错误:ORA-12170:TNS:发生连接超时
输入用户名:
测试2:结果成功
C:\ oraclexe\app\oracle\product\11.2.0\server\bin> sqlplus.exe system/mypassword
SQL*Plus:版本11.2.0.2.0生产于2014年4月22日星期二11:33:22版权所有(c)1982,2010,Oracle.版权所有.
连接到:Oracle Database 11g Express Edition版本11.2.0.2.0 - 生产
SQL>
测试3:结果成功
C:\ oraclexe\app\oracle\product\11.2.0\server\bin> sqlplus.exe/as sysdba
SQL*Plus:版本11.2.0.2.0生产于2014年4月22日星期二11:34:29版权所有(c)1982,2010,Oracle.版权所有.
连接到:Oracle Database 11g Express Edition版本11.2.0.2.0 - 生产
SQL>
LISTENER.LOG
22-APR-2014 11:53:51 * (CONNECT_DATA=(SID=XE)(CID=(PROGRAM=SQL Developer)(HOST=__jdbc__)(USER=admin))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=50010)) * establish * XE * 12505
TNS-12505: TNS:listener does not currently know of SID …
Run Code Online (Sandbox Code Playgroud) hibernate ×4
oracle ×4
jpa ×2
sql ×2
arrays ×1
boolean ×1
criteria ×1
criteria-api ×1
database ×1
datatables ×1
eclipse ×1
file-rename ×1
filter ×1
hql ×1
html-table ×1
iis-8 ×1
java ×1
javascript ×1
jointable ×1
jpa-2.0 ×1
jquery ×1
many-to-many ×1
named ×1
oracle11g ×1
orm ×1
php ×1
php-manager ×1
plsql ×1
sqlplus ×1
svn ×1
tablecell ×1
views ×1