例如,有两个实体 Users 和 System 。用户具有角色 admin 和 user 。具有管理员角色的用户必须与系统多对多关联,而具有用户角色的用户必须一对多(系统)关联(用户)。hibernate 提供了任何标准方法吗?另外,这样通过spring security进行身份验证时就不会发生冲突
主页
/
user-287366
Daniel Vai's questions
实现了一个包含国家代码的正则表达式。接下来,我在文本中查找这些代码,找到后,我将国家的全名添加到工作表中。很可能我在找到代码时做了一个拐杖。模板中,代码是单引号传入的,Dictionary中的key自然是没有的(key是code,value是全名,比如US)。为了通过 key 正确提取值,我通过 Substring 删除了这些引号,它开始在调试器中显示国家/地区的名称,但它给出了错误: System.ArgumentOutOfRangeException :索引和长度必须引用字符串中的位置。(参数“长度”
如何修复错误?没想到
代码(测试失败的方法之一):
public List<string> Text_Regul(string text)
{
List<string> coun;
Match m;
string teamp;
try
{
var list = GettingTextReg();
string pattern = string.Format("\'({0})\'", string.Join("|", list.Keys));
coun = new List<string>();
m = Regex.Match(text, pattern);
int i=1;
while (m.Success)
{
Group g = m.Groups[i];
if (g.Length >= 2)
{
teamp = list[g.Value.Substring(1, 2)];// тут ошибка.
if (list.ContainsKey(teamp))
{
coun.Add(teamp);
}
}
i++;
m = m.NextMatch();
}
} catch(ArgumentNullException e)
{
throw new ArgumentNullException(e.Message);
}
return coun;
}
截屏:
指出代码中的错误。我需要创建一个字典并用国家填充它,键是国家代码,例如 RU,值是俄罗斯的名称。我使用 RegionInfo, CultureInfo ,只是循环并填写。第二种方法获取文本并在那里查找国家代码,然后显示它们的值。我正在尝试使用 xUnit(第一次,我没有使用它的经验),当我运行该方法时,它只是无休止地加载并最终溢出所有挂起的内存。
测试:
public class UnitTest1
{
[Fact]
public void ItShould_UnderTesting()
{
//Arrange
var sut = new CountriesFilter();
//Act
var d = sut.Text_Regul("gh bbff swvw'RU', 'DE' ggg ");
//Assert
Assert.NotNull(d);
}
编码:
public class CountriesFilter
{
public static IDictionary<string, string> GettingTextReg()
{
var allCultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
var codeandname = new Dictionary<string, string>(allCultures.Length);
foreach(var i in allCultures)
{
RegionInfo regionInfo = new RegionInfo(i.Name);
if (codeandname.Count(x => x.Key == regionInfo.TwoLetterISORegionName) == 0)
{
codeandname.Add(regionInfo.TwoLetterISORegionName, regionInfo.DisplayName);
}
}
return codeandname;
}
public List<string> Text_Regul(string text)
{
List<string> coun = null;
try
{
var list = GettingTextReg();
string pattern = string.Format("\'({0})\'", string.Join("|", list.Keys));
Match mat = Regex.Match(text, pattern);
coun = new List<string>();
while (mat.Success)
{
coun.Add(mat.Value);
}
} catch(ArgumentNullException e)
{
throw new ArgumentNullException(e.Message);
}
return coun;
}
}
}