小编Sha*_*vil的帖子

Java:Hibernate @OneToOne映射

我试图让Hibernate @OneToOne注释工作,而且在这里没有取得多大成功......

假设我有一个名为的表status,如下所示:

+------------------------------------------------+
|                     status                     |
+------------------------------------------------+
| id | frn_user_id | frn_content_id |   status   |
+----+-------------+----------------+------------+
|  1 |     111     |        0       |  "active"  |
+----+-------------+----------------+------------+
|  2 |      0      |       222      | "inactive" |
+----+-------------+----------------+------------+
Run Code Online (Sandbox Code Playgroud)

我有一个实体User,看起来像这样:

@Entity
@Table(name = "user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id", nullable = false)
    private Integer id;

    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "userId")
    private Status status;

    // getters and setters …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa one-to-one hibernate-annotations

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

Java:具有接口属性的对象的Jackson多态JSON反序列化?

我使用Jackson ObjectMapper来反序列化包含接口作为其属性之一的对象的JSON表示.这里可以看到代码的简化版本:

https://gist.github.com/sscovil/8735923

基本上,我有一个Asset有两个属性的类:typeproperties.JSON模型如下所示:

{
    "type": "document",
    "properties": {
        "source": "foo",
        "proxy": "bar"
    }
}
Run Code Online (Sandbox Code Playgroud)

properties属性被定义为一个被调用的接口AssetProperties,我有几个实现它的类(例如DocumentAssetProperties,ImageAssetProperties).这个想法是图像文件具有与文档文件不同的属性(高度,宽度)等.

我在关闭的例子合作这篇文章,通读文档和问题,这里SO和超越,并在不同的配置试验@JsonTypeInfo标注的参数,但一直没能破解这个螺母.任何帮助将不胜感激.

最近,我得到的例外是:

java.lang.AssertionError: Could not deserialize JSON.
...
Caused by: org.codehaus.jackson.map.JsonMappingException: Could not resolve type id 'source' into a subtype of [simple type, class AssetProperties]
Run Code Online (Sandbox Code Playgroud)

提前致谢!

解:

非常感谢@MichałZiober,我能够解决这个问题.我还能够使用Enum作为类型ID,这需要一些谷歌搜索.这是一个带有工作代码的更新Gist:

https://gist.github.com/sscovil/8788339

java polymorphism json jackson deserialization

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

如果对象实例为HashMap,如何检查键和值的类型?

我有一个接受Object的方法.在一个用例中,该方法接受a HashMap<String, String>并将每个值设置为相应键名的属性.

public void addHelper(Object object) {
    if (object instanceof HashMap) {
        HashMap<String, String> hashMap = (HashMap<String, String>) object;
        this.foo = hashMap.get("foo");
        this.bar = hashMap.get("bar");
    }
}
Run Code Online (Sandbox Code Playgroud)

此类遵循特定接口,因此不能为这些属性添加setter.

我的问题是,如何检查此处的类型?

HashMap<String, String> hashMap = (HashMap<String, String>) object;
Run Code Online (Sandbox Code Playgroud)

提前致谢!

感谢@drobert的回答,这是我的更新代码:

public void addHelper(Object object) {
    if (object instanceof Map) {
        Map map = (Map) object;
        if (map.containsKey("foo")) this.foo = map.get("foo").toString();
        if (map.containsKey("bar")) this.bar = map.get("bar").toString();
    }
}
Run Code Online (Sandbox Code Playgroud)

java object unchecked-cast

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

Java:将一个对象列表的属性映射到另一个对象列表的最有效方法

我正在寻找一种有效的设计模式,将一个对象列表映射到另一个对象列表,并且它们之间具有零或一对一的关系。我意识到这种事情通常是在关系数据库中完成的,但在这种特殊情况下,它确实需要在 Java 应用程序中完成......

假设第一个列表包含Foo对象(即List<Foo>):

public class Foo {
    public Integer id;
    public String barName;
}
Run Code Online (Sandbox Code Playgroud)

第二个列表包含Bar对象(即List<Bar>):

public class Bar {
    public Integer fooId;
    public String name;
}
Run Code Online (Sandbox Code Playgroud)

如何最有效地将所有name属性映射Bar到eq​​uals 的Foo对象?Bar.fooIdFoo.id

我能想到的最好的是:

void mapFooBar(List<Foo> fooList, List<Bar> barList) {
    for (Bar bar : barList) {
        for (Foo foo : fooList) {
            if (bar.fooId.equals(foo.id)) foo.barName = bar.name;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:根据几个答案,我改进了我的代码,如下所示:

void mapFooBar(List<Foo> fooList, List<Bar> barList) { …
Run Code Online (Sandbox Code Playgroud)

java mapping loops design-patterns list

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

Deployd:如何实施dpd-passport并安全地进行身份验证

首先让我说我真的很喜欢Deployd.我想在生产中使用它,但我想要合并OAuth和社交登录,所以我安装了dpd-passport模块.除了两个小(大)问题外,它的效果很好:

  1. 当用户通过OAuth提供商(例如Facebook,Twitter,Github)登录时,会创建新的用户记录...但如果同一用户清除其Cookie或使用其他浏览器登录,则会创建新的用户记录.
  2. 如果我做一些聪明的事情(阅读:hacky)并为社交登录用户分配一个基于socialAccount和socialAccountId的ID(每个社交帐户都是唯一但不变的),有人可以使用标准的用户创建方法来欺骗用户/users如果他们知道用户的socialAccount和socialAccountId,则向端点发出POST请求.

我的问题是:IA如何防止#1发生,或者B)禁用用户创建的标准方法而不阻止OAuth用户创建?

有没有人成功使用过Deployddpd-passport在生产中?如果是的话,我想跟你说话......

提前致谢!

oauth node.js deployd passport.js

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

[Nuxt,i18n,Vuex]:如何从商店 getter 访问 this.$i18n.locales

我正在使用 Nuxt v2.15 和 @nuxtjs/i18n v7.2 构建一个网络应用程序。我使用 Vuex 进行状态管理。在我的全局状态下,我想创建一个返回基于this.$i18n.locale.

在我的 Vuex getter 方法中访问附加到当前应用程序上下文的最佳方法是什么$i18n

nuxt.config.js

export default {
  modules: [
    "@nuxtjs/i18n", // https://i18n.nuxtjs.org/
  ],
  i18n: {
    locales: { /* configuration */ },
    defaultLocale: "en",
    detectBrowserLanguage: {
      fallbackLocale: "en",
      redirectOn: "root",
    },
    langDir: "~/locales/",
    vueI18n: {
      fallbackLocale: "en",
      messages: { /* translation data */ },
    },
  },
};
Run Code Online (Sandbox Code Playgroud)

商店/index.js

export const state = () => ({
  // Root module for Vuex store: https://nuxtjs.org/docs/directory-structure/store/
});

export const getters = …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vuex nuxt.js nuxt-i18n

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

如何使用 jQuery.inArray 方法选择一组唯一的随机数(无重复)?

这是一个 Javascript / jQuery 问题:

我正在尝试使用jQuery.inArray方法生成 1 到 21(无重复)之间的六个唯一随机数。然后,这六个数字将用于从名为 logo1.jpg 到 logo21.jpg 的组中选择六个 .jpg 文件。

谁能告诉我我在这里做错了什么?

<div id="client-logos"></div>

<script src="http://code.jquery.com/jquery-1.5.js"></script>

<script type="text/javascript">

Show = 6; // Number of logos to show
TotalLogos = 21; // Total number of logos to choose from
FirstPart = '<img src="/wp-content/client-logos/logo';
LastPart = '.jpg" height="60" width="120" />';
r = new Array(Show); // Random number array

var t=0;
for (t=0;t<Show;t++)
   {
      while ( jQuery.inArray(x,r)
         {
            var x = Math.ceil(Math.random() * TotalLogos);
         });
      r[t] = …
Run Code Online (Sandbox Code Playgroud)

javascript arrays random jquery unique

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

如何为WordPress中的自定义TinyMCE按钮分配href值?

好的,这是在扼杀我.我写了一个WordPress插件,它为TinyMCE编辑器添加了一个自定义按钮,效果很好,除了由按钮触发的选项弹出窗口加载不同于WP原生的类似弹出窗口...

具体来说,当您单击WordPress中TinyMCE工具栏上方的"添加媒体"按钮时,"添加媒体"窗口将以精美的厚箱模式打开.它也会加载到iframe中,因为获取输出的按钮HTML包含在一个带有URL href值的锚标记中:

<a href="http://.../wp-admin/media-upload.php?post_id=916&amp;TB_iframe=1&amp;width=640&amp;height=354" class="thickbox add_media" id="content-add_media" title="Add Media" onclick="return false;">
Run Code Online (Sandbox Code Playgroud)

但是当我的按钮的HTML输出时,锚标记的href值为'javascript:;':

<a role="button" id="content_companyinfo" href="javascript:;" class="mceButton mceButtonEnabled mce_companyinfo" onmousedown="return false;" onclick="return false;" aria-labelledby="content_companyinfo_voice" title="Insert company info fields" tabindex="-1">
Run Code Online (Sandbox Code Playgroud)

这是我的TinyMCE编辑器插件代码:http://pastebin.com/kuQJRHJR

以下是添加媒体按钮的WP核心TinyMCE编辑器插件:http://core.trac.wordpress.org/browser/trunk/wp-includes/js/tinymce/plugins/media/editor_plugin_src.js

TinyMCE addButton函数不允许您设置href值,只允许链接到使用addCommand创建的自定义命令函数的cmd值.

我尝试在addButton函数的设置中将类'thickbox'添加到我的按钮,但这有一个奇怪的效果,在我的普通弹出窗口后面创建一个厚盒模式.

任何人都知道如何以正确的方式做到这一点?提前致谢!

javascript wordpress iframe tinymce thickbox

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

PHP:如何基于MySQL类型转换mysqli_result-> fetch_object()的属性?

我试图mysqli_result->fetch_object()基于MySQL中定义的类型来转换属性.

例如,如果我的idbigint(20)在MySQL中,我想mysqli_result->fetch_object()->id成为一个整数,而不是一个字符串.

根据文档,此方法返回字符串属性的对象.是否有可能获得数据类型?

php mysql mysqli casting

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

AngularJS 1.4:如何使用bindToController和controllerAs语法创建双向绑定

好的,这真的让我烦恼.我有一个带隔离范围的指令,使用controllerAs语法和bindToController:

function exampleDirectiveFactory() {
    var bindings = {
        foo: '=',
        bar: '@'
    }

    return {
        bindToController: true,
        controller      : 'ExampleController',
        controllerAs    : 'vm',
        scope           : bindings,
        template        : 'foo = {{ vm.foo }}<br />bar = {{ vm.bar }}'
    };
}
Run Code Online (Sandbox Code Playgroud)

假设有这样的用法:

<example foo="FOO" bar="BAR"></example>
Run Code Online (Sandbox Code Playgroud)

...我希望值vm.foo的值与foo属性的值双向绑定.相反,它是undefined.

vm.bar等于barHTML元素的属性值,我期望.

当我尝试更改vm.bar使用过滤器的值时,不会继续更改.

当我将过滤后的值存储vm.bar到一个新变量时vm.baz,它按预期工作.

这是一个小提琴

所以我的问题有两个部分:

A)为什么vm.foo使用时未定义的值'='

B)为什么我不能改变vm.bar控制器范围内的值,即使该改变没有传播到HTML元素属性(它不应该,因为我正在使用'@')?

javascript angularjs angularjs-directive controlleras

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

AngularJS:代码属于哪里,在解析承诺后更新表单字段?

在我的AngularJS应用程序中,我有一个包含a <textarea>和提交按钮的模板.A <div>(可以很容易<form>)包装这两个元素并有一个控制器.当单击提交按钮时,控制器将$ resource服务用于POST<textarea>REST API 到值的值.

模板:

<div ng-controller="MyController as vm">
  <textarea ng-model="vm.text" rows="5"></textarea>
  <button ng-click="vm.save()">Save</button>
</div>
Run Code Online (Sandbox Code Playgroud)

控制器:

angular.module('myApp')
  .controller('MyController', MyController);

MyController.$inject = ['myRestApiResource'];

function MyController(myRestApiResource) {
  var vm = this;
  vm.save = function() {
    var params = [];
    var postData = {text: vm.text};
    myRestApiResource.save(params, postData)
      .then(function(res) { /* success handler */ })
      .catch(function(res) { /* error handler */ });
  };
}
Run Code Online (Sandbox Code Playgroud)

当资源save()方法的$ promise被拒绝时,响应数据(在某些情况下)包含一个error.position属性,该属性引用检测到语法错误的字符串索引 …

javascript separation-of-concerns angularjs angularjs-design-patterns

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

Java:如果抽象类Foo返回Object,具体类Bar可以返回String还是Integer?

我有一个带有抽象类的Java枚举,如下所示:

public enum Strategy {
    STRING {
        @Override
        public String execute() {
            return "ABCDE";
        }
    },
    INTEGER {
        @Override
        public Integer execute() {
            return 12345;
        }
    };
    public abstract Object execute();
}
Run Code Online (Sandbox Code Playgroud)

当我使用它时,我希望能够这样做:

String text = Strategy.STRING.execute();
Integer num = Strategy.INTEGER.execute();
Run Code Online (Sandbox Code Playgroud)

但是,我的IDE警告我,这些是不兼容的类型,不会编译.要解决它,我必须改为:

String text = (String) Strategy.STRING.execute();
Integer num = (Integer) Strategy.INTEGER.execute();
Run Code Online (Sandbox Code Playgroud)

我宁愿不必投出我的execute()方法的结果.有没有办法返回具体方法签名中指定的类型,而不是返回Object

java generics abstract-class casting

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

你如何配置i18next-express-middleware?

我正在尝试开始在 Express 服务器上使用 i18next,但无法根据文档中的示例使其正常工作。

我的应用程序由 index.js(我的 Express 服务器)、package.json 和一个locales包含两个翻译文件的目录组成:en.json 和 es.json。

索引.js

'use strict';

const express = require('express');
const i18n = require('i18next');
const i18nMiddleware = require('i18next-express-middleware');
const path = require('path');

const app = express();
const port = process.env.PORT || 8080;

i18n
  .use(i18nMiddleware.LanguageDetector)
  .init({
    fallbackLng: 'en',
    lowerCaseLng: true,
    preload: ['en', 'es'],
    resGetPath: path.join(__dirname, 'locales/__lng__.json'),
    useCookie: false
  });

app.use(i18nMiddleware.handle(i18n, {
  removeLngFromUrl: false
}));

app.get('/', (req, res) => {
  res.send(req.t('home.title'));
});

app.use(express.static(path.join(__dirname, 'public')));

module.exports = app.listen(port, (err) => {
  if (err) …
Run Code Online (Sandbox Code Playgroud)

middleware node.js express i18next

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