我正在尝试使用游标来连接多个表的查询.我已经看到oracle有一个基于游标的记录.当我为Postgres尝试相同时,它会抛出一些错误.我怎么能在Postgres做同样的事情?
CREATE OR REPLACE FUNCTION avoidable_states()
RETURNS SETOF varchar AS
$BODY$
DECLARE
xyz CURSOR FOR select * from address ad
join city ct on ad.city_id = ct.city_id;
xyz_row RECORD;
BEGIN
open xyz;
LOOP
fetch xyz into xyz_row;
exit when xyz_row = null;
if xyz_row.city like '%hi%' then
return next xyz_row.city;
end if;
END LOOP;
close xyz;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
Run Code Online (Sandbox Code Playgroud)ERROR: relation "xyz" does not exist CONTEXT: compilation of PL/pgSQL function "avoidable_states" near line 4
我在2个实体之间映射一对一时遇到了以下异常.第一个实体嵌入了复合键.第二个实体也有嵌入式复合键.这些表是遗留系统的一部分.数据持平,关系定义不明确.请帮忙.
Caused by: org.hibernate.AnnotationException: referencedColumnNames(FLAG_NAME) of net.javabeat.spring.model.ReferralsM.mnEditFlag referencing net.javabeat.spring.model.MnEditFlag not mapped to a single property
at org.hibernate.cfg.BinderHelper.createSyntheticPropertyReference(BinderHelper.java:205)
at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:116)
at org.hibernate.cfg.Configuration.processEndOfQueue(Configuration.java:1515)
at org.hibernate.cfg.Configuration.processFkSecondPassInOrder(Configuration.java:1440)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1358)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1727)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1778)
at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:247)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:373)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:358)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1571)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509)
... 34 more
Run Code Online (Sandbox Code Playgroud)
这是我在主/父表中的一对一映射.
@OneToOne(targetEntity = MnEditFlag.class, fetch = FetchType.LAZY)
@JoinColumn(name = "REFFLG", referencedColumnName = "FLAG_NAME", insertable = false, updatable = false)
MnEditFlag mnEditFlag;
Run Code Online (Sandbox Code Playgroud) 2015-09-28 10:02:21,890 ERROR [STDERR] (HDScanner) SLF4J: slf4j-api 1.6.x (or later) is incompatible with this binding.
2015-09-28 10:02:21,891 ERROR [STDERR] (HDScanner) SLF4J: Your binding is version 1.5.5 or earlier.
2015-09-28 10:02:21,891 ERROR [STDERR] (HDScanner) SLF4J: Upgrade your binding to version 1.6.x.
2015-09-28 10:02:21,891 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/metasolv-web]] (HDScanner) Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/impl/StaticLoggerBinder;
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?另外,在我的应用程序中,我不在任何地方使用slf4j,只有Dozer库使用它.从下面的stacktrace我看到spring应用程序正在使用slf4j,但为什么它不能自己加载?
java.lang.NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/impl/StaticLoggerBinder;
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:107)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:295)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:269)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:156)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:645)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:191)
Run Code Online (Sandbox Code Playgroud) 我在webapp上使用spring with hibernate(hibernate-core-4.3.8.Final和spring 3.2.11.RELEASE).我使用hikaricp(v 2.2.5)作为连接池impl,它检测连接泄漏并打印下面的堆栈跟踪.我使用spring的声明式事务划分,所以我假设管理和清理资源是由spring/hibernate完成的.因此,我认为spring或hibernate是检测到连接泄漏的原因.
基本上,有一个计时器,当它被触发时,调用一个标有@Transactional注释的spring bean.
@Transactional public class InvoiceCycleExporter {
public runExportInvoiceCycleJob(){
//this method when called is **sometimes** leaking a connection ....
} }
Run Code Online (Sandbox Code Playgroud)
能帮我跟踪连接泄漏的来源吗?
我的appcontext.xml配置数据源,连接池,entitymanager如下
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
<property name="maximumPoolSize" value="${jdbc.maximumPoolSize}"/>
<property name="driverClassName" value="org.postgresql.Driver"/>
<property name="leakDetectionThreshold" value="${jdbc.leakDetectionThreshold}"/>
</bean>
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="shutdown">
<constructor-arg ref="hikariConfig"/>
</bean>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="persistenceUnitName" value="velosPU"/>
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml"/> //more stuff ....
</bean>
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪如下:
2015-01-13 14:25:00.123 [Hikari Housekeeping Timer (pool …Run Code Online (Sandbox Code Playgroud) 我想使用 JPA 2.0 标准 api 来构建带有子选择的 order by 子句。我知道你可以用普通的 SQL 来做到这一点,但它可以用标准 api 映射吗?有人可以给一个代码示例吗?
例子:
Order(name, address) // table1
OrderPriority(address, priority) // table2 priority by address
select o from Order o order by (select p.priority from OrderPriority p where
p.address = o.address)
Run Code Online (Sandbox Code Playgroud) 我有以下服务在我的应用程序中显示通知,它到目前为止显示正常,但它不处理点击事件一些如何.我该如何处理?
要求:只要视频正在播放,我希望此通知存在.我希望这是做到这一点的方法.
public class CustomNotifications extends Service implements
INotificationService {
private static CustomNotifications instance;
private Context ctx;
private NotificationManager mNotificationManager;
private String start = "play";
private String stop = "stop";
private VideoCastManager mCastManager;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (null != intent) {
String action = intent.getAction();
if (action != null) {
if (action.equals(start)) {
} else if (action.equals(stop)) {
}
}
}
return 1;
}
public void startNofication(Activity activity, String text) {
ctx …Run Code Online (Sandbox Code Playgroud) 我在找工作时遇到过几次这个问题,但是,在开发过程中,我从未在任何地方遇到过这个术语。我知道它们有 4 个级别,但是我知道它是什么真的很重要吗?作为应用程序设计人员,我应该知道这一点吗?有人可以用现实世界的场景来解释这一点吗?
谢谢。
我跟随道:
@Repository("userDao")
public class UserDaoImpl implements UserDao {
@Autowired
private SessionFactory sessionFactory;
@Transactional
public void add(User user) {
Session session = sessionFactory.getCurrentSession();
session.save(user);
session.getTransaction().commit();
}
}
Run Code Online (Sandbox Code Playgroud)
它是从
@Controller
public class HomeController {
@Autowired
private UserDao userDao;
@RequestMapping(value = "/test")
public ModelAndView test() {
User user = new User();
user.setName("34r");
userDao.add(user);
ModelAndView model = new ModelAndView("home");
model.addObject("userList", null);
return model;
}
}
Run Code Online (Sandbox Code Playgroud)
在浏览器中我尝试访问此链接
最后我得到以下堆栈跟踪:
SEVERE: Servlet.service() for servlet [appServlet] in context with path [/SpringMvcHibernateXML] threw exception [Request processing failed; nested exception …Run Code Online (Sandbox Code Playgroud) 我正在尝试为Spring AOP实现一个Pointcut.getXXXX应该记录所有类似的方法.我尝试了以下但是他们抛出异常或不触发:
第一次尝试
@Pointcut("within(net.services.*.get*)")
private void clServiceLayer() {}
@Pointcut("within(net.services.*.get*(..))")
private void clServiceLayer() {}
Run Code Online (Sandbox Code Playgroud)
需要帮助正确表达切点.
我正在调整Google Cast代码(此处提供的代码)。
我已经完成了整个工作空间的设置,但是,当尝试在Android手机上运行示例应用程序时,出现以下错误。
我刚刚将软件包名称指定为应用程序ID。我从哪里获得应用程序ID?我应该在Google注册以获得应用程序ID吗?它是如何工作的?
02-13 23:36:00.995: E/AndroidRuntime(8310): FATAL EXCEPTION: main
02-13 23:36:00.995: E/AndroidRuntime(8310): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.google.sample.cast.refplayer/com.google.sample.cast.refplayer.VideoBrowserActivity}: java.lang.IllegalArgumentException: Invalid appliation ID: com.google.sample.cast.refplayer
02-13 23:36:00.995: E/AndroidRuntime(8310): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1967)
02-13 23:36:00.995: E/AndroidRuntime(8310): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
02-13 23:36:00.995: E/AndroidRuntime(8310): at android.app.ActivityThread.access$600(ActivityThread.java:127)
02-13 23:36:00.995: E/AndroidRuntime(8310): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
02-13 23:36:00.995: E/AndroidRuntime(8310): at android.os.Handler.dispatchMessage(Handler.java:99)
02-13 23:36:00.995: E/AndroidRuntime(8310): at android.os.Looper.loop(Looper.java:137)
02-13 23:36:00.995: E/AndroidRuntime(8310): at android.app.ActivityThread.main(ActivityThread.java:4511)
02-13 23:36:00.995: E/AndroidRuntime(8310): at java.lang.reflect.Method.invokeNative(Native Method)
02-13 23:36:00.995: E/AndroidRuntime(8310): at java.lang.reflect.Method.invoke(Method.java:511)
02-13 23:36:00.995: E/AndroidRuntime(8310): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
02-13 23:36:00.995: E/AndroidRuntime(8310): …Run Code Online (Sandbox Code Playgroud) java ×6
hibernate ×5
spring ×4
android ×2
aop ×1
chromecast ×1
connection ×1
criteria-api ×1
cursor ×1
entity ×1
google-cast ×1
java-ee ×1
jpa ×1
jpa-2.0 ×1
loops ×1
plpgsql ×1
postgresql ×1
session ×1
slf4j ×1
spring-aop ×1
sql-order-by ×1
subquery ×1
transactions ×1