小编dav*_*ani的帖子

Spring获取泛型类

我知道这个问题经常被问到,但我找不到解决方案。如何在 Spring 注入的存储库中获取泛型类名?

这是我的基本存储库

public interface UserRepository extends JpaRepository<User, Long>, IUserRepository<User>{
   User findByUsername(String username);
}
Run Code Online (Sandbox Code Playgroud)

这是界面

public interface IUserRepository<T> {
   public List<T> findAllValidEtSiteAndStructure();
}
Run Code Online (Sandbox Code Playgroud)

最后是实现

public class UserRepositoryImpl<T> implements IUserRepository<T> {

@PersistenceContext
private EntityManager em;

private Class< T > type;

@Override
public List<T> findAllValidEtSiteAndStructure() {
    final Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
    if (authentication instanceof UserAuthentication) {
        final User currentUser = ((UserAuthentication) authentication).getDetails();
        return (List<T>) em.createQuery("FROM " + type.getName()+ " WHERE site=:site AND structure=:structure AND valid=:valid")
                .setParameter("site", currentUser.getInstallation().getSite())
                .setParameter("structure", currentUser.getInstallation().getStructure())
                .setParameter("valid", true) …
Run Code Online (Sandbox Code Playgroud)

java generics spring

5
推荐指数
2
解决办法
7093
查看次数

Cordova文件插件 - 将文件保存在设备中

我在Android中保存文件时遇到了很多麻烦.
该项目是使用Ionic与这些插件一起开发的混合应用程序:

com.phonegap.plugins.fileopener 1.0.0 "File Opener"
com.telerik.plugins.nativepagetransitions 0.4.2 "Native Page Transitions"
cordova-plugin-compat 1.0.0 "Compat"
cordova-plugin-crosswalk-webview 2.0.0 "Crosswalk WebView Engine"
cordova-plugin-file 4.2.0 "File"
cordova-plugin-network-information 1.2.2-dev "Network Information"
cordova-plugin-whitelist 1.2.3-dev "Whitelist"
cordova-plugin-wkwebview-engine 1.0.4-dev "Cordova WKWebView Engine"
ionic-plugin-keyboard 2.2.1 "Keyboard"
Run Code Online (Sandbox Code Playgroud)

Android平台版本是5.2.1
我正在使用的设备Samsung A7

这是摘要 AndroidManifest.xml

<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

情况1

如果我尝试使用此片段(实际上正在处理另一个项目)

var storagePath = "/storage/emulated/0";
var fileDir = cordova.file.externalDataDirectory.replace(cordova.file.externalRootDirectory, '');
var fileName = $scope.ngDocument.documentId + ".pdf" …
Run Code Online (Sandbox Code Playgroud)

android cordova cordova-plugins ngcordova cordova-plugin-file

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